gnuplot:跳过缺少的列

gnuplot:跳过缺少的列,plot,gnuplot,Plot,Gnuplot,我绘制了类似(gnuplot4.6rc1)的图: 具有csv文件,如: time, value_a, value_c 0, 1, 2 4, 5, 6 如果缺少一列(例如value\u b),则不会生成整个绘图,并出现错误找不到标题为“value\u b”的列 有没有办法跳过打印此列,而不是跳过整个打印?您可以使用以下数据文件: time, value_a, value_c, value_b 0, 1, 2 4, 5, 6 请注意,value_b列有一个标题,但它不需要任何数据点。GNUplo

我绘制了类似(gnuplot4.6rc1)的图:

具有csv文件,如:

time, value_a, value_c
0, 1, 2
4, 5, 6
如果缺少一列(例如
value\u b
),则不会生成整个绘图,并出现错误
找不到标题为“value\u b”的列


有没有办法跳过打印此列,而不是跳过整个打印?

您可以使用以下数据文件:

time, value_a, value_c, value_b
0, 1, 2
4, 5, 6
请注意,
value_b
列有一个标题,但它不需要任何数据点。GNUplot将找到该列并感到高兴,但由于没有数据,因此不会绘制该列。由于每个输出文件只生成一次标题,所以添加所有列名非常容易

我不知道有什么解决办法可以让你完全省略这一列。但是绘制数据的另一种方法是:

plot   "data1.csv" using "time":"value_a"
replot "data2.csv" using "time":"value_b"
replot "data3.csv" using "time":"value_c"
因此,如果可以跟踪打印出的列,则可以用这种方式构建打印文件


如果这不可能,那么您的问题现在就归结为如果出现错误,让GNUplot继续到下一行。遗憾的是,我不知道如何做到这一点。

你能不能将这些值设置为任意字符,然后使用
设置missing
?问题不在于缺少值,而在于缺少列(例如上面的两行csv中没有
value\u b
列)。是的,我看到了,但是你能不能不把一整列都放在缺少值的地方?不,最好不要改变文件,否则这个问题就不存在了。好吧,很公平。我能想到的唯一解决方案是一个读取文件的预处理程序。如果该列不存在,它会追加缺少的值,然后将输出通过管道传输到gnuplot。但也许有人知道其他的事情。
plot   "data1.csv" using "time":"value_a"
replot "data2.csv" using "time":"value_b"
replot "data3.csv" using "time":"value_c"