labels
figure_labels1
labels样式从数据文件中读取坐标和文本,并将文本字符串放在对应的 2D 或 3D 位置上。需要 3 或 4 个输入列的基本数据。额外的输入列可以用来提供各点的属性,例如文本旋转角度 (关键字rotate variable) 或颜色 (参见textcolor 变量)。
3 列: x y string # 2D 版
4 列: x y z string # 3D 版
打印文本的字体、颜色、旋转角度和其他属性可以通过额外的命令选项指定 (参见set label)。下面的示例生成一个 2D 图,其中的文本标签取自输入文件第一列的城市名,其地理坐标位于第 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"
如果标签被标记为超文本,那么文本只有在鼠标悬停在相应锚点时才会出现。参见hypertext。在这种情况下,必须启用标签的point属性,使得点可以充当超文本锚点:
plot 'cities.dat' using 5:4:1 with labels hypertext point pt 7
figure_labels2
当预定义的点符号集合不合适或者不够灵活时,labels样式也可以用来代替points样式。例如,这里我们定义一组选定的单字符符号,并根据第 3 列的数据值将它们分配到每个点上:
set encoding utf8
symbol(z) = "∙□+⊙♠♣♡♢"[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