通过对列进行分组的多个绘图与gnuplot

时间:2013-09-27 05:50:25

标签: linux plot gnuplot octave

我有一个架构为“对象参数output1 output2 ...... outputk”的数据文件。例如。

0.1 0.2 0.43 0.81 0.60
A 0.2 0.1 0.42 0.83 0.62
A 0.3 0.5 0.48 0.84 0.65
B 0.1 0.1 0.42 0.83 0.62
B 0.2 0.1 0.82 0.93 0.61
B 0.3 0.5 0.48 0.34 0.15
...

我想创建多个图,每个图对应一个对象,x轴是参数,系列是输出。目前,我编写了一个python脚本,它将每个对象的行转储到不同的文件中,然后调用gnuplot。是否有更优雅的方式来绘制它?

1 个答案:

答案 0 :(得分:0)

您正在寻找:

plot 'data.txt' using (strcol(1) eq "A" ? $2 : 1/0):4 with line

结果是: enter image description here

如果您想为每个对象使用创建绘图:

do for [object in "A B"] {
  reset
  set title sprintf("Object %s",object)
  plot 'data.txt' using (strcol(1) eq object ? $2 : 1/0):4 notitle with line
  pause -1
}

只需按Enter即可获得下一个情节。 当然,您也可以在文件中导出这些图。