50 Labels

Image figure_labels1
スタイル labels は、データファイルから座標と文字列を読み込み、その文 字列をその 2 次元、または 3 次元座標に置きます。これは基本的に 3 列、 または 4 列の入力を必要とします。さらに余分な入力列は、文字列の回転角 (キーワード rotate variable) や文字色 (以下参照: textcolor variable (21.1.2)) のような、点毎に変動する属性値が指定されたとみなされます。


    3 列:  x  y  string    # 2 次元版
    4 列:  x  y  z  string # 3 次元版

フォント、色、回転角やその他の描画テキストの属性は追加オプションとして 指定可能です (以下参照: set label (100.39))。次の例は、入力ファイルの 1 列目 から取った市の名前から作られる文字列を、4, 5 列目から取った地図座標に 描画します。フォントサイズは、3 列目の値から計算していて、この場合はそ れは人口を意味しています。


 CityName(String,Size) = sprintf("{/=%d %s}", Scale(Size), String)
 plot 'cities.dat' using 5:4:(CityName(stringcolumn(1),$3)) with labels

フォントサイズを、個々の市の名前に対して異なるサイズに合わせなくていい ならば、コマンドはもっと簡単です:


 plot 'cities.dat' using 5:4:1 with labels font "Times,8"

labels に hypertext がついている場合、その文字列はマウスがそれに対応 する点の上に来たときにだけ現われます。以下参照: hypertext (100.39.2)。この場合 ハイパーテキストの置き場所として機能する点を作るためにそのラベルの point 属性を有効にする必要があります:


 plot 'cities.dat' using 5:4:1 with labels hypertext point pt 7

Image figure_labels2
スタイル points であらかじめ定義されている点の記号が適切でない、ある いは十分でない場合、その代わりとしてスタイル labels を使うこともでき ます。例えば、以下は単一文字として選択される組を定義し、3 列目のデータ値に対応するその一つをグラフの各点に割り当てる例です (訳注: 以下のサンプルの <UTF-8 文字列> の部分には、元々、丸に中点記号や□、+、トランプ記号などの UTF-8 文字列が並んでいますが、この日本語訳とは両立しないため取り除いています):


 set encoding utf8
 symbol(z) = "<UTF-8 文字列>"[int(z):int(z)]
 splot 'file' using 1:2:(symbol($3)) with labels

以下は、4 列目の値を可変値の回転角とし、5 列目の値を文字色 ("tc") とす るラベルの使用例です。可変値の色指定は、常に using 指定の最後の列か ら取ることに注意してください。


 plot $Data using 1:2:3:4:5 with labels tc variable rotate variable

竹野茂治@新潟工科大学
2021-06-08