Gnuplot 点颜色取决于字符串列值

Gnuplot 点颜色取决于字符串列值,gnuplot,Gnuplot,我想用红色或绿色的点绘制简单的2D点图,其中颜色由第三个字符串列决定。这一个不编译: plot "data.txt" using 1:2:3 with points lc rgbcolor (stringcolumn(4) eq "B" ? "green" : "red") 抱怨: stringcolumn() called from invalid context 数据如下所示: 1,2,"A" 2,3,"A" 3,1,"B" 4,2,"A" 如何执行此操作?您可以通过为每种颜色指定一个

我想用红色或绿色的点绘制简单的2D点图,其中颜色由第三个字符串列决定。这一个不编译:

plot "data.txt" using 1:2:3 with points lc rgbcolor (stringcolumn(4) eq "B" ? "green" : "red")
抱怨:

stringcolumn() called from invalid context
数据如下所示:

1,2,"A"
2,3,"A"
3,1,"B"
4,2,"A"

如何执行此操作?

您可以通过为每种颜色指定一个线型编号,然后将第3列计算为这些编号之一来执行此操作。例如:

set linetype 1 lc 'green'
set linetype 2 lc 'red'
plot "data.txt" using 1:2:(stringcolumn(3) eq "B"?1:2) with points lc variable
注意,数据列必须用空格而不是逗号分隔