1

我想在 3d 的同一张图上绘制两个不同的数据集。这可以很容易地完成

splot 'foo.dat','bar.dat'

不幸的是,我想要foo平滑,所以我曾经dgrid3d设置过网格。同时我想bar只显示点(foo实际上是 的插值bar,我想绘制结)。因此我用

set dgrid3d 20,20
splot 'foo.dat' w l, 'bar.dat' w points

不幸的是,这适用dgrid3d于两个数据集......是否可以dgrid3dsplot命令中取消设置或使用其他技巧来解决这个问题?

4

1 回答 1

4

你需要另一个技巧。这个诀窍是set table

set terminal push           #save terminal info
set terminal unknown        #null terminal
set table 'foo_gridded.dat' #temporary file to store the data
set dgrid3d 20,20   
splot 'foo.dat'
unset table                 #close temporary file
unset dgrid3d
set terminal pop            #restore terminal info
splot 'foo_gridded.dat' w l, 'bar.dat' w points  #make the plot we want
!rm foo_gridded.dat         #Optional, remove temporary file (Only works on Unix-like systems)

set table 基本上将数据“绘制”到一个文本文件中,该文件格式化为 gnuplot 以供回读。它非常有用- 最后,我认为它的目的是创建各种(丑陋的)小黑客,比如上面的那个因此 gnuplot 开发人员无需担心绘图类型的冲突。(我用这个在 pm3d 地图上绘制等高线)。

于 2012-05-15T12:49:03.543 回答