2013-01-13 2 views
2

저는 Figure 객체를 반환하는 외부 함수를 가지고 있는데,이 경우 각 Figure 객체는 정확히 하나의 Axes 객체로 구성됩니다. 이 두 그림으로 구성된 새로운 그림을 구성하고 싶습니다 (수평 결합이라고합시다).두 개의 matplotlib 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') 

은 물론,이 작동하지 않습니다, 검색 한 축이, 필립스와 그림 2,하지 joinedFig에 속해있다. 축도 단순히 copy.deepcopy()로 복제 할 수 없습니다.

내 예제에서는 그림을 참조하고 있습니다. 그림() 인스턴스화. 검색을 통해 pyplot.figure()가 개발 팀의 권장 인스턴스 생성 기술이라는 것을 알게되었지만, Axes/Figure 복사본 구성 및 복사 된 Axes 구성을 통한 Figure 구성을 수행 할 수있는 방법이 있습니까?

답변

2

CreateFig을 수정할 수 있습니까? 경우에 따라서, 쉬운 용액있다 : 원하는 그림을 만들어 제 축의 후 CreateFig에 축을 통과하고 CreateFigaxes 오브젝트 조작하자

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

관련 문제