我有一个依赖于phi和theta的函数,我想在一个球体的表面上绘制。 日期存储在.txt文件中,其中包含以下列:
1: x = R*sin(theta)*cos(phi)
2: y = R*sin(theta)*sin(phi)
3: z = R*cos(theta)
4: density
我使用以下gnuplot代码绘制:
set terminal wxt size 800,800
set mapping cartesian
set view equal xyz
set xlabel 'x'
set ylabel 'y'
set zlabel 'z'
splot "densityprofile_100.000.txt" u 1:2:3:4 with pm3d
pause -1
不幸的是,Gnuplot似乎无法正确表示球体上的颜色。似乎有一些阴影,我无法摆脱;看到这里的图片:
当我用鼠标转动球体时,阴影变得越来越小,但没有完全消失的位置。 任何帮助表示赞赏。
答案 0 :(得分:3)
我通过添加以下行找到了解决问题的方法:
set pm3d depthorder
答案 1 :(得分:0)
猜测,深度排序可能会造成一些麻烦。你试过pm3d“hidden3d”选项吗?
来自pm3d的gnuplot帮助:
选项hidden3d将线条样式作为参数 由设置样式线创建....(样式不需要出现时 设置pm3d,但在绘图时必须存在)。如果设置,则为行 使用指定的线条样式绘制,考虑隐藏线 去除。这比使用命令集更有效 hidden3d因为它没有真正计算隐藏线移除,但只是 以正确的顺序绘制填充的多边形。所以推荐 使用pm3d时的选择是
set pm3d at s hidden3d 100 set style line 100 lt 5 lw 0.5 unset hidden3d unset surf splot x*x+y*y