3

Figure オブジェクトを返す外部関数があり、この状況では、各 Figure オブジェクトは正確に 1 つの Axes オブジェクトで構成されています。
この2つの図からなる新しい図を構成したいと思います(水平結合としましょう)。
理想的には、次のように言いたいです。

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

fig1明らかに、これは機能しません。取得された軸はおよび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 に答える