Gnuplot:关闭启用了depthorder的pm3d曲面

时间:2013-11-22 02:49:30

标签: gnuplot

我想绘制一个表面,其中每个面具有不同的pm3d样式。我尝试了以下方法:

reset
set format x "%.6f"
set format y "%.6f"
set format z "%.6f"
set xrange[-10:10]
set xtics border -10,5,10
set yrange[-10:10]
set ytics border -10,5,10
set cbrange[0:2]
set pm3d depthorder
set palette defined (0 'green', 1 'red', 1 'blue', 2 'black')
splot "pm3d1_1.dat" using 1:2:3:($3/200) with pm3d, "pm3d1_1.dat" using 1:2:($3-1):($3/200+1) with pm3d

其中'pm3d1_1.dat'是函数z = x x + y y,z在0到200之间变化(x,y在-10到10之间)。问题是,从某些观点来看,输出看起来并不像我预期的那样,如下所示:

我很感激任何帮助,我想知道是否有替代方案可以在每张脸上绘制不同pm3d样式的表面。感谢。

1 个答案:

答案 0 :(得分:1)

我想它必须采用depthorder对四边形进行排序的方式。不知道这是否可以修复。为了扩展您的问题,这里是一个没有外部数据文件的例子,它也显示了问题:

set xrange[-10:10]
set yrange[-10:10]
set zrange[-1:200]
set isosamples 20
set pm3d depthorder
set ticslevel 0
set view 65,28
set palette defined (0 'green', 1 'red', 1 'blue', 2 'black')
splot '++' using 1:2:(z=$1**2+$2**2):(z/200.0) w pm3d,\
      '++' using 1:2:(z=$1**2+$2**2, z-1):(z/200.0+1) w pm3d

结果(4.6.4):

enter image description here

不知道有任何其他方式来绘制这个。也许我会将上述脚本作为错误报告提交。