У меня есть простой трехмерный график поверхности, на котором я хочу, чтобы оси были равны во всех направлениях.У меня есть следующий фрагмент кода:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
X = np.array([-100, 0, 100])
Y = np.array([ 0, 10, 20])
X_grid, Y_grid = np.meshgrid(X,Y)
Z_grid = np.matrix('0 10 4;'
'1 11 3;'
'0 10 5')
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X_grid, Y_grid, Z_grid, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=1, antialiased=True)
plt.axis('Equal')
, который дает этот график:
Затем мне нужно вручную уменьшить масштаб, чтобы получить надлежащие пределы оси.Я пробовал plt.xlim(-100,100)
, но он не отвечает?Кроме того, the plt.axis('Equal')
не относится к оси z?
График должен выглядеть следующим образом: