3

我有一个返回 Figure 对象的外部函数,在这种情况下,每个 Figure 对象都由一个 Axes 对象组成。
我想组成一个由这两个图形组成的新图形(比如说水平连接)。
所以理想情况下,我想说:

fig1, fig2, joined = CreateFig( data1 ), CreateFig( data2 ), Figure()
subp1, subp2 = joined.add_subplot( 121 ), joined.add_subplot( 122 )
subp1, subp2 = fig1.get_axes()[0], fig2.get_axes()[0]
joinedFig.savefig( 'joined.eps' )

显然,这不起作用,因为检索到的轴属于fig1and fig2,而不是joinedFig
轴也不能仅由 复制copy.deepcopy()

在我的示例中,我指的是figure.Figure()实例化。虽然搜索确实让我看到这pyplot.figure()是开发团队推荐的实例化技术,但它并没有改变问题:有没有办法通过复制的组合来进行Axes/Figure复制构造和构造?FigureAxes

4

1 回答 1

3

可以修改CreateFig吗?如果是这样,有一个简单的解决方案:首先创建所需的图形和轴,然后将轴传递给CreateFig,然后让CreateFig操作axes对象:

import matplotlib.pyplot as plt
import numpy as np

def CreateFig(data, ax):
    ax.plot(data)

fig, axs = plt.subplots(1, 2)
data = np.sin(np.linspace(0,2*np.pi,100))
CreateFig(data, axs[0])
data = np.linspace(-2,2,100)**2
CreateFig(data, axs[1])
plt.show()

在此处输入图像描述

于 2013-01-13T14:26:08.433 回答