使用dgrid3d时,gnuplot会忽略x和y范围

时间:2013-01-29 10:38:25

标签: gnuplot

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

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

我获得的结果如下图所示: enter image description here

设置 pm3d 的选项 clip1in clip4in 无效。如果我取消设置视图以使结果为3D曲面,则它也会忽略x和y范围。我可以轻松编写一个脚本来预处理数据并删除我想要的范围之外的点,但 gnuplot 应该能够管理它。有什么想法吗?

我正在使用 gnuplot 4.2 patchlevel 6

谢谢!

1 个答案:

答案 0 :(得分: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)。

Simple image

但有一些注意事项 - 请注意,我原始域中的每个点都超出了给定的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几个月了,它看起来非常稳定。