【发布时间】:2019-08-27 16:56:22
【问题描述】:
所以当我注意到某些东西时,我试图使用 matplotlib 在 3d 中绘制一些数学函数......当我尝试修复之前遇到一些“缺失表面”的问题时,3d 图突然改变(更像是坏掉了) ' - 情节中的空白。主要问题是 - 由于 Axes3d 的某些固有计算限制或其他原因,3d 图是否没有显示更高精度的两个峰值?还有一个次要问题——为什么在较低精度的图中我会在 +1.25 和 -1.25 附近遇到“缺失表面”?
我已经尝试在谷歌上搜索并参考了一些帖子,但除了更多问题之外什么都没有。
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
X=np.arange(-2,+2,0.025)
## Use np.arange(-5,+5,0.25) to experience the 'surface loss' I mention but otherwise correct 2 spike plot at each of (0,-1) and (0,+1) for both X and Y
Y=np.arange(-2,+2,0.025)
X,Y=np.meshgrid(X,Y)
R=1+X**2-Y**2
S=R**2+4*(X**2)*(Y**2)
Z=R/S
fig=plt.figure()
ax=Axes3D(fig)
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=cm.viridis,norm=mpl.colors.Normalize(vmin=-1.,vmax=1.))
##NORMALIZE Was essential to get the proper color range
plt.show()
plt.savefig('art3d.jpeg',bbox_inches='tight')
plt.savefig('art3d.svg',bbox_inches='tight')
理想的结果应该是这样的(显示函数和情节) https://i.stack.imgur.com/kVnYc.png 运行代码时可以看到我得到的两个图,因为我似乎无法添加图像,大概是因为声誉低:( 任何和所有的帮助表示赞赏。在此先感谢。
【问题讨论】:
标签: python-3.x numpy matplotlib 3d graph-visualization