gpt4 book ai didi

python - 将两个 matplotlib figure.Figure 或 axes.Axes 对象合并为一个新对象

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:15 27 4
gpt4 key购买 nike

我有一个返回 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' )

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

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

最佳答案

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

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()

enter image description here

关于python - 将两个 matplotlib figure.Figure 或 axes.Axes 对象合并为一个新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com