45 Labels

Image figure_labels1
スタイル labels は、データファイルから座標と文字列を読み込み、その文 字列をその 2 次元、または 3 次元座標に置きます。これは基本的に 3 列、 または 4 列の入力を必要とします。余分な入力列は、フォントサイズか文字 色の変数値のような情報が提供されたものとして使用されます (以下参照:rgbcolor variable (19.1.3))。


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

フォント、色、回転角やその他の描画テキストの属性は追加オプションとして 指定可能です (以下参照: set label (87.35))。次の例は、入力ファイルの 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 (87.35.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

以下も参照: datastrings (12), set style data (87.72.3)

竹野茂治@新潟工科大学
2015年1月5日