gnuplotでテキストを扱う時のシングルクォート、ダブルクォートなどについて

gnuplotに限らず、プログラミング言語ではテキストを扱う場合にはテキストをシングルクォートやダブルクォートで囲います。そして多くの場合、シングルクォートとダブルクォートでは機能がやや異なり、それはgnuplotでも同じです。
実際、gnuplotではどのような使われ方をするのか見てみることにします。

gnuplotで使えるクォートについて

まずgnuplotで使えるクォートは3つあります。3つはそれぞれ
  • シングルクォート
  • ダブルクォート
  • バッククォート
ですが、最後のバッククォートについては機能が特殊なので最後に説明することにします。まずはシングルクォートとダブルクォートの違いについて見ていきます。

シングルクォートとダブルクォートの違い

シングルクォートとダブルクォートで何が違うのかというと、制御文字の扱いが変わってきます。以下の2行の文章を例にすると
Hello world!
Today is a good day.

これを1つのテキストで表すには改行を「\n」で表しダブルクォートを用いて
"Hello world!\nToday is a good day."

となります。
しかしこれをシングルクォートを用いて
'Hello world!\nToday is a good day.'

とした場合は「\n」はバックスラッシュとnと文字通りに扱われて以下のようにそのまま出力されます。

さて制御文字の扱いの違いがあるのは分かったのですが、gnuplotではシングルクォートにおいてもすべてが文字として扱われない場合もあります。 次に説明するenhanced textを使う場合がそれです。

enhanced textの場合

enhanced textの解説はまた別の機会にするとして、簡単に説明すると
 y = x2

のようにテキストを上付きや下付きなどの装飾をするものです。出力端末の設定でこれを使うか使わないか指定出来るのですが、通常は使える場合は使う設定になるようです。
そして、シングルクォートを使う場合でもこのenhanced textの指定は有効となります。
(もちろんダブルクォートを使う場合でも)

単純なようでも話がややこしく感じるのですが、実際にはlabelをセットする際に「noenhanced」オプションも合わせて使うなどで対処すればいいかと思います。

バッククォート

ここまでシングルクォートとダブルクォートの違いについて説明してきましたが、最後に残ったバッククォートを使う場合について説明していきます。始めにバッククォートは機能が特殊と書きましたが、それはバッククォート内に書いたシステム側のコマンドが実行されその出力が挿入されるためです。

例えばグラフのタイトルにdateコマンドで日付や時刻を入れたい場合、
gunuplot> set title "`date`"

とします。すると以下のようにdateコマンドの実行結果がタイトルに使われることになります。
ここではタイトルとして用いるためテキストとして受け取る必要があるので、バッククォートをさらにダブルクォートで囲って使っています。またシングルクォートで囲った場合ではコマンドではなく文字として扱われるので、タイトルが「`date`」となってしまうだけです。

最後に

gnuplotでは使う目的がないとあまりテキストを使わないので、たまにテキストを使おうとすると地味にハマるポイントが多いです。しかし、クォートの使い方は他のプログラミング言語と同様ですし、バッククォートに関してもbashのようなシェルでも同様な機能があるので、そういったものに慣れれば自然に使えるようになるでしょう、たぶん。


その他、gnuplot関連のブログ記事

Amazon プログラミング関係の書籍など

コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

catコマンドの出力を行番号付きにするためのコマンドラインオプション(-n, -b)

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)