Matplotlib 三角形(plot_trisurf)颜色与网格
我正在尝试用plot_trisurf画一个3D表面,像这样:
xs = NP.array([ 0.00062 0.00661 0.02000 0.01569 0.00487 0.01784])
ys = NP.array([ 0.99999 0.66806 0.50798 0.61230 0.83209 0.86678])
zs = NP.array([-0.24255 -0.42215 -0.31854 -0.77384 -0.77906 -0.98167])
ax=fig.add_subplot(1,2,1, projection='3d')
ax.grid(True)
ax.plot_trisurf(xs, ys, zs, triangles = triangles, alpha = 0.0, color = 'grey')
这样做后我得到了这个图:

现在我遇到了两个问题:
- 三角形是黑色的,我能改变这个颜色吗?(在2D中用triplot可以通过
color = 'grey'
来实现,但在这里似乎不行。) - (如果能看到的话)3D图的网格在三角形上留下了痕迹:看起来网格是在三角形上面显示的,而我(当然)希望三角形是在网格上面的。
1 个回答
4
把最后一行改成:
ax.plot_trisurf(xs, ys, zs, triangles=triangles,
color=(0,0,0,0), edgecolor='Gray')
你指定的 color
是用作 facecolor
的;如果你想让面是透明的,不要用 alpha=0
,而是用 color=(r,g,b,0)
;这里的 0
是面颜色的透明度;这样就会得到透明的面。