如果第三轴的 gnuplot 条件

if condition in gnuplot for the third axis

我想以调色板格式绘制文件,

plot 'file.dat' u (-):(6-3):(6=3) pointtype 1 lc palette,\
     'file.dat' u (-):(0-7):(0=7) pointtype 1 lc palette

虽然列的选择不规则,但我需要为调色板轴(条)使用 if 条件,这表明如果列 6=3 绘制列 6或者如果 0=7 绘制 0.

我不知道这在 gnuplot 中是否可行,或者我应该跳过使用 gnuplot

根据你的描述,我还是不明白你的意思。到目前为止,这就是我所理解的。 您对某些列进行一些操作以确定 x 和 y 坐标(在您的情况下:-6-3)。 现在,您想通过什么来确定数据点的颜色?通过某种条件? 条件是什么?那么,如果满足条件(6==3)你想要什么颜色,如果不满足条件(即6!=3)你想要什么颜色。

我为了更进一步,我用数据和做了一个最小的例子。 如果第 3 列中的值等于第 4 列中的值,则数据点的颜色将根据使用第 3 列的调色板,否则 NaN(= 未绘制)。这是否接近您想要实现的目标?也许我们可以从这里继续...

代码:

### conditional plotting
reset session

$Data <<EOD
1   21  1  0
2   22  2  2
3   23  3  0
4   24  4  4
5   25  5  0
6   26  6  6
7   27  7  0
EOD

set palette rgb 33,13,10

plot $Data u (+):(+):(== ?  : NaN) w p pt 7 ps 3 lc palette notitle
### end of code

结果: