Matplotlib复制/复制3D图形?

时间:2017-07-31 09:16:13

标签: python python-2.7 python-3.x matplotlib

我试图找到一种方法来复制matplotlib中的3D图形,但我没有找到适合我的解决方案。

从这些帖子中 How do I reuse plots in matplotlib?How to combine several matplotlib figures into one figure? 在下面的代码中使用fig2._axstack.add(fig2._make_key(ax),ax)给出了相当不错的结果但是图2不是交互式的我不能旋转图形等:

import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure(1)
ax = fig.gca(projection = '3d')

ax.plot([0,1],[0,1],[0,1])

fig2 = plt.figure(2)
fig2._axstack.add(fig2._make_key(ax),ax)

plt.show()

另一种方法是使用本文How do I reuse plots in matplotlib?中提出的复制方法将对象从ax复制到ax2,但执行以下代码会返回RuntimeError: Can not put single artist in more than one figure

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

fig = plt.figure(1)
ax = fig.gca(projection = '3d')

ax.plot([0,1],[0,1],[0,1])

fig2 = plt.figure(2)
ax2 = fig2.gca(projection = '3d')

for n in range(len(ax.lines)) :
    ax2.add_line(copy.copy(ax.lines[n]))
plt.show()

这些代码非常简单,但我不想复制/粘贴部分代码来绘制类似的数字

预先感谢您的回复!

0 个答案:

没有答案