从3D数据输入进行Gnuplot 2D打印

从3D数据输入进行Gnuplot 2D打印,3d,plot,2d,gnuplot,3d,Plot,2d,Gnuplot,我有一些数据,我想在三维和二维图形绘制。我有一个具有以下形状的数据文件: 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绘图: 使用1:2:3和行显示“data.txt” 此

我有一些数据,我想在三维和二维图形绘制。我有一个具有以下形状的数据文件:

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绘图: 使用1:2:3和行显示“data.txt”

此外,我现在想在两个方向上绘制2D图。大概是

plot "data.txt" using 1:3 
仅使用第一个矩阵

我在“如何在文件中绘制部分数据”一节中找到了帮助

第一个案例

plot "data.txt" every :::1:1 using 1:3 with lines
他似乎能胜任这项工作

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

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

不会做我期望的事。绘图实际上要么是空的,要么只包含一个数据文件。

键入
help 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

plot.

我认为您的第一个示例是错误的,它应该是
plot“data.txt”every::0::0,使用1:3和行
,注意零(在gnuplot中是第一个元素而不是1)和额外的冒号“:”在零之间。这意味着“开始打印块零,以块零结束”“是的,你是对的。我很抱歉,谢谢你的评论!:)使用1:3绘制“data.txt”every::0::0确实会影响作业,不幸的是,它没有连接各个点。我在网站上找到了另一个关于这个的讨论。不幸的是,我无法获得给定的示例,无法使用我的示例运行。。。你有什么建议吗?你在上面的评论开头加了一个冒号。关于用线连接点,似乎没有完全的gnuplot解决方案,请参阅。基本上使用
plot“
plot "<awk -v p=0 'n==p; NF{n++} !NF{n=0}' data.txt" u 1:3 w l