我想绘制一个表面,其中每个面具有不同的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样式的表面。感谢。
答案 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):
不知道有任何其他方式来绘制这个。也许我会将上述脚本作为错误报告提交。