Matplotlib 3D等高线图遮挡问题:实现前景遮挡背景
用Python复现Mathematica的3D等高线图遮挡效果问题
我之前用Mathematica制作了一张3D等高线图,现在尝试用Python复现。两者效果对比如下:
Mathematica效果:
Python效果:
我希望前景(山体可见部分)能够遮挡背景(不可见部分),但当前Python版本的效果如同从山体下方观察,不清楚如何调整使其更接近Mathematica的效果(我不在意颜色,反而更喜欢Python版本的配色)。以下是实现代码:
import numpy as np from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt plt.rcParams["lines.linewidth"]=0.5 fig = plt.figure() ax = fig.add_subplot(111, projection="3d") X, Y = np.mgrid[-3:3:30j, -3:3:30j] Z= np.exp(-(abs(X)**2 + abs(Y)**2)) + 0.8*np.exp(-4*((abs(X-1.5))**4.2 + (abs(Y-1.4))**4.2)) ax.plot_surface(X, Y, Z, cmap="coolwarm", rstride=1, cstride=1, alpha=0.2) # ax.contourf(X, Y, Z, levels=60, colors="k", linestyles="solid", alpha=0.9, antialiased=True) ax.contour(X, Y, Z, levels=60, linestyles="solid", alpha=0.9, antialiased=True) plt.show() plt.savefig('contour3D.png', dpi=300)
内容的提问来源于stack exchange,提问作者Vincent Granville
相关产品推荐
相关产品推荐

