Matplotlib: у вас есть ось ортогонального долевого участка с двухмерным графиком - PullRequest
0 голосов
/ 07 мая 2019

Я намерен построить выровненный по осям вид на трехмерных объектах с projection="ortho" рядом с данными 2D (профиль), но я просто не могу понять, как сделать так, чтобы вертикальные оси совпадали.

В следующем примере я хотел бы, чтобы второй и третий субплоты разделяли вертикальные оси: plot produced with the sample code

Вот соответствующий код:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

# 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 3d view
fig = plt.figure(figsize=(16,4))
ax1 = fig.add_subplot(131, projection='3d')
ax1.view_init(40, 60)
surf = ax1.plot_surface(X, Y, Z, cmap=cm.viridis,linewidth=0)

# plot one side
ax2 = fig.add_subplot(132, projection='3d', proj_type = 'ortho')
ax2.view_init(0, 0)
surf = ax2.plot_surface(X, Y, Z, cmap=cm.viridis, linewidth=0)
ax2.set_zlim([-0.2,1])

# plot some 2d information
ax3 = fig.add_subplot(133)
ax3.set_ylim([-0.2,1])

plt.show()
...