0

我有一个包含分散数据的文件(点大约位于规则网格的顶点上):前两列是 x 和 y 坐标,然后是我需要绘制的其他数据的几列。我想获得代表这些数据的颜色图,并且由于点是分散的,我使用dgrid3d来生成规则网格并具有更平滑的表示。我的问题是,当我设置dgrid3d时,gnuplot 会忽略 x 和 y 范围并在图框之外绘制网格。Bellow 是重现我的问题的最小脚本:

set view map
set yrange [0.4:0.8]
set xrange [0.2:0.8]
set pm3d 
set style data lines
set dgrid3d 100,100,4
splot "./Terr.dat" using 1:2:(log($6)) pal

我得到的结果如下图: 在此处输入图像描述

设置pm3d的选项clip1inclip4in无效。如果我取消设置视图 以使结果为 3D 表面,它也会忽略 x 和 y 范围。我可以很容易地编写一个脚本来预处理数据并删除我想要的范围之外的点,但是gnuplot应该能够管理这个。任何的想法?

我正在使用gnuplot 4.2 补丁级别 6

谢谢!

4

1 回答 1

1

我不确定我能否重现您的问题,但您的脚本中有一些有趣的地方。当set style data lines您使用pm3d. 我创建了一个简单的数据文件:

0 1 4
1 0 5
0 0 2
1 1 3

我使用这个脚本绘制了它:

set view map
set yrange [0.4:0.8]
set xrange [0.2:0.8]
set dgrid3d 100,100,4
splot 'test.dat' u 1:2:3 w pm3d

它似乎“工作”(我使用的是gnuplot 4.6.0)。

简单的图像

但是有几点需要注意——请注意,我的原始域中的每个点都超出了给定的 x 和 y 范围。Gnuplot 在构建表面时仍然使用这些点。这也相当不错地展示了 gnuplot 加权函数的样子(尽管我们可以通过仅在数据文件中使用 1 个点来做得更好。)


更新

在我的两台计算机之间,我可以访问 gnuplot4.2.6、gnuplot4.3.0、gnuplot4.4.2、gnuplot4.6.0、gnuplot4.6.1 和 gnuplot4.7.0。gnuplot4.2.6 是唯一表现出您描述的行为的版本。在我看来,他们在 4.3 CVS 分支中更改了 pm3d 的行为,但没有将这些更改推回 gnuplot4.2。简单的解决方法是升级到 gnuplot4.6——我已经将它用作我的默认 gnuplot 几个月了,它似乎相当稳定。

于 2013-01-29T13:09:07.417 回答