【发布时间】:2012-06-27 14:38:35
【问题描述】:
我正在使用以下gnuplot 命令来创建绘图:
#!/bin/bash
gnuplot << 'EOF'
set term postscript portrait color enhanced
set output 'out.ps'
plot 'data_file' u 3:2 w points , '' u 3:2:($4!=-3.60 ? $1:'aaa') w labels
EOF
data_file 看起来像这样:
O4 -1.20 -0.33 -5.20
O9.5 -1.10 -0.30 -3.60
B0 -1.08 -0.30 -3.25
B0.5 -1.00 -0.28 -2.60
B1.5 -0.90 -0.25 -2.10
B2.5 -0.80 -0.22 -1.50
B3 -0.69 -0.20 -1.10
我希望 gnuplot 用 1 列中的字符串标记 所有 点,除了 列 4 等于 -3.60 的那个案例我想要aaa 字符串。我得到的是$4=-3.60 数据点被正确标记为aaa,但其余的都没有被标记为根本。
更新:gnuplot 使用条件语句将 numbers 显示为标签没有问题,即:除1 之外的任何列都正确显示为每个点的标签施加的条件。也就是说,此行将列 2 (numbres) 显示为符合条件语句的点标签:
plot 'data_file' u 3:2 w points , '' u 3:2:($4!=-3.60 ? $2:'aaa') w labels
更新2:如果我将1列绘制为整体,即不使用,它也没有问题将列1绘制为点标签strong> 条件语句。也就是说,这条线正确地绘制了所有列1(字符串)中的点标签:
plot 'data_file' u 3:2 w points , '' u 3:2:1 w labels
很明显,问题在于将条件语句 together 与字符串列一起使用。任何一个单独使用都很好。
【问题讨论】:
标签: conditional gnuplot labels