Gnuplot 2D绘图来自3D数据输入

时间:2014-03-25 23:27:22

标签: 3d plot 2d gnuplot

我有一些数据,我想在3d和2d图中绘制。我有一个具有以下形状的数据文件:

1 1 2
2 1 4
3 1 6
4 1 8

1 2 1
2 2 2
3 2 3
4 2 4

1 3 4
2 3 3
3 3 2
4 3 1

1 4 8
2 4 6
3 4 4
4 4 2

在这种情况下,第一列是x,第二列是y,第三列是值。 实际上我正在使用一个文件,它有100个单独的矩阵,但我认为这个例子应该有点方便。 :)

我使用以下方法制作了一个3d图: splot" data.txt"使用1:2:3的行

此外,我现在想在两个方向上制作2D图。像

这样的东西
plot "data.txt" using 1:3 

仅使用第一个矩阵

plot "data.txt" using only the first line of 2:3 in every matrix

我在1的部分&#34中找到了帮助;如何在文件中绘制部分数据?"

对于第一种情况

plot "data.txt" every :::1:1 using 1:3 with lines

似乎做了这项工作

但对于第二种情况,我不确定,如何以正确的方式管理语法

plot "data.txt" every ::1   using 1:3 with lines

不会做我的预期。该图实际上是空的或只包含一个数据文件。

1 个答案:

答案 0 :(得分:0)

键入help every可为您提供有关如何执行此操作的指南。但我同意every选项使用起来有点尴尬。这应该这样做:

plot "data.txt" every ::0::0   using 1:3 with lines

这意味着“将每个块的元素绘制为零到零”。元素零是gnuplot中的第一个元素。

为了能够按行连接点,您需要使用外部工具,例如awk

plot "<awk -v p=0 'n==p; NF{n++} !NF{n=0}' data.txt" u 1:3 w l

其中p=0every ::0::0具有相同的效果。已经给出了此解决方案here