Итак, я пытался отобразить некоторые математические функции в 3d с помощью matplotlib, когда я что-то заметил ... 3D-график неожиданно изменился (скорее как сломался), когда я попытался исправить предыдущую проблему, в которой я столкнулся с некоторой отсутствующей поверхностью '- пробел в сюжете. Главный вопрос заключается в следующем: не показывает ли трехмерный график два пика с более высокой точностью из-за некоторых вычислительных ограничений Axes3d или по какой-то другой причине? Также второстепенный вопрос - почему я сталкиваюсь с «отсутствующими поверхностями» около +1.25 и -1.25 на графике с более низкой точностью?
Я попробовал поискать его в Google и сослался на несколько сообщений, но ничего не пришло, кроме вопросов.
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
Два графика, которые я получаю, можно увидеть при запуске кода, так как я не могу добавить изображения, предположительно из-за низкой репутации :(
Любая помощь приветствуется. Спасибо заранее.