我试图绘制一组当前存储的图表:
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;矩阵包含缺失或未定义的值"警告,显着减慢了在屏幕上显示图像的速度。
答案 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
或者,如果您更喜欢更紧凑的表示,则可以将每行保存在一列中。但是,您必须确保较短的列填充空值。为此,应该使用例如逗号作为字段分隔符:
"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