我正在使用matplotlib
绘制3D桁架的变形。现在,我要做的是在同一个图上显示完全相同的axes3D
的两个视图(并排),在这种情况下,一个在等轴测视图和侧视图中。我可以用最少量的复制粘贴来做到这一点吗?
我没有包含代码,因为matplotlib网页上的任何示例都足够了。
答案 0 :(得分:1)
我认为你不能创建轴的副本,只是改变它的视角。我认为最简单的方法是创建一个函数,传递子图的位置和视角。
以下是一个示例,基于mpl website
中的lines3d_demo
示例
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
mpl.rcParams['legend.fontsize'] = 10
fig = plt.figure(figsize=(9,4))
def makeplot(position,angle):
ax = fig.add_subplot(position,projection='3d')
ax.plot(x, y, z, label='parametric curve')
ax.view_init(30, angle)
ax.legend()
return ax
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax1 = makeplot(121,30)
ax2 = makeplot(122,60)
plt.show()