Gnuplot:绘制行方式并将命名数据绘制为不同颜色和标题行的捆绑

时间:2015-11-06 09:54:03

标签: gnuplot

我试图绘制一组当前存储的图表

MyFile.txt的

"ID01" 1 2 3 4 5
"ID02" 3 4 5 6 7 8 9
"ID03" 4 3 1 2 3 4

这样有一行标题为" ID01"它仅显示第一行,另一行标题为" ID02"等等。如果线条以不同颜色显示,则奖励积分。非常感谢任何帮助!

我得到了这个

plot for[blockIndex=0:3] "MyFile.txt" matrix index blockIndex every ::1 w lp title "".blockIndex

如果在数据文件中的行之间插入空行(我可以这样做),则生成下面的图像。

剩下的问题是

a)我绝对不会将ID-String显示为标题(列表标题显然不能很好地与矩阵模式一起使用)。我目前使用块索引,它可以作为权宜之计,但不是完成脚本的选项。我可以选择以不同的方式在数据文件中排列ID字符串(即根据列标题单独的注释行,......) - 唯一的要求是所有行数据都应该在一个文件中。

b)我得到了#34;矩阵包含缺失或未定义的值"警告,显着减慢了在屏幕上显示图像的速度。

enter image description here

1 个答案:

答案 0 :(得分:3)

这不是gnuplot用来保存数据的方式。您的方法还有其他问题,即如果行具有不同的点数等,则实际上没有矩阵。处理此类数据的gnuplot方法是将属于不同行的点与 2 空行,并在之前添加相应的标题:

"ID01"
1
2
3
4
5


"ID02"
3
4
5
6
7
8
9


"ID03"
4
3
1
2
3
4

然后使用

绘制数据
set key autotitle columnheader left
plot for [i=0:2] 'MyFile.txt' using 0:1 index i with linespoints

enter image description here

或者,如果您更喜欢更紧凑的表示,则可以将每行保存在一列中。但是,您必须确保较短的列填充空值。为此,应该使用例如逗号作为字段分隔符:

"ID01","ID02","ID03"
1,3,4
2,4,3
3,5,1
4,6,2
5,7,3
 ,8,4
 ,9,

并用

绘图
set key autotitle columnheader
set datafile separator ','
plot for [i=1:3] 'MyFile.csv' using 0:i with linespoints