Я работаю с двумерными матрицами, где записи представляют собой высоту, и пытаюсь построить их с помощью MatPlotLib mplot3d. Как я могу настроить вертикальную высоту полученной фигуры? Чтобы привести пример, извлечение из кода в учебнике по mplot3d:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
# Make data.
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
# Plot the surface.
surf = ax.plot_surface(X, Y, Z, linewidth=0, antialiased=False)
# Configure z-axis.
ax.set_zlim(-1.01, 1.01)
plt.show()
Это дает:
Я хотел бы сжать изображение по вертикали, чтобы отметка 1.00
по оси Z была сдвинута вниз до текущей позиции -0.75
.
Изменение z-предела с помощью ax.set_zlim(-1.01, 10.01)
сглаживает данные, но сохраняет ту же высоту фигуры. Я также экспериментировал с такими операторами, как plt.figure(figsize=(20,5))
, но это меняет размер фигуры и мешает вращению полученного графика в 3D.
Как сжать только ось Z?