【发布时间】:2015-01-29 13:27:28
【问题描述】:
我有以下形式的数据文件:
不重要1不重要2不重要3矩阵数据[i] 1e4 2e5 3e2 1 2 3 4 5 2e3 1e1 7e3 5 4 3 2 1 ……………… 2e3 1e4 4e2 4 4 4 4 4所以它的第一行是列标题(这里是“unimportant1”到“unimportant3”)。我希望 gnuplot 忽略这前三个不重要的列,以便以指数表示法的数据条目。我希望 gnuplot 将 matrixdata 绘制为矩阵。所以就好像我是这样做的:
#!/usr/bin/gnuplot -p
plot '-' matrix with image
1 2 3 4 5
5 4 3 2 1
...
4 4 4 4 4
e
如何让 gnuplot 忽略前三列和标题行并将其余部分绘制为 矩阵图像?为了兼容性,我更喜欢内置的 gnuplot 来执行此操作,但我可以编写一个 shell 脚本并使用 `plot '
编辑: 所以neuhaus' answer 几乎解决了它。我唯一缺少的是,如何忽略带有文本标题数据的第一行(行)。每个人似乎都期望数字数据,因此整个图都失败了,因为它不是矩阵。我不想注释掉第一行,因为我将不重要的数据集用于其他 2D 绘图,而这些绘图又使用标题数据。
那么我该如何跳过已经使用every的矩阵图中的一行来跳过列?
【问题讨论】:
-
不幸的是,这不是一个解决方案,而是一个可能的解决方案的展望:Gnuplot 5.0 有一个
skip选项,不幸的是它只能在没有matrix的情况下工作:plot 'data.dat' skip 1 with lines。但我认为这是一个错误,对我来说plot 'matrix.dat' matrix every ::3 skip 1 with image应该可以工作......一个非常丑陋和脆弱的黑客将使用set datafile commentschar 'u'; plot 'matrix.dat' matrix every ::3 with image。 -
用
#注释掉第一行会让事情变得非常简单。