2010-08-02 6 views
2

현재 두 개의 하위 그림이 있습니다. 참고 :이 항목은 Mac OS X 10.6.x의 matplotlib v12.99.3에 있습니다.subplot matplotlib를 확대하는 방법은 무엇입니까?

서브 플로트 중 하나를 클릭하면 무언가를 인쇄하는 이벤트 처리기가 있습니다. 임시 거주자 일뿐입니다. 제가 원하는 것은 subplot을 클릭했을 때, 전체 그림을 취하고 싶습니다 (다른 subplot을 삭제하고 전체 그림을 채우기 위해 최대화). 이 일을 어떻게 하죠?

답변

1

서브 플로트가 반환하는 axes을 수정하여이 작업을 수행 할 수 있습니다. 즉, 축을 원하는대로 배치하고 크기를 지정할 수 있으며, 서브 그림은 균일 한 모눈에 배치 된 축을 반환하는 함수입니다. 일단 서브 플롯에서이 축을 얻으면 임의로 크기를 조정하고 위치를 변경할 수 있습니다.

from pylab import * 

axes = [None, None] 

def make(): 
    figure() 
    axes[0] = subplot(1, 2, 1) 
    axes[1] = subplot(1, 2, 2) 
    show() 

def re_form(): 
    xmax = axes[1].get_position().get_points()[1][0] 
    axes[1].set_axis_off() 
    (x0, y0), (x1, y1) = axes[0].get_position().get_points() # xmin, ymin, xmax, ymax 
    axes[0].set_position([x0, y0, xmax-x0, y1-y0]) # x, y, width, height 
    show() 

가 여기에 내가 줄거리를 업데이트 show()를 사용하지만, 당신이 당신의 이벤트 처리기에 대한 더 적절한 것을 사용하는 것이 좋습니다 예를 들면 다음과 같습니다이다. 이 데모는 iPython과 함께 작동합니다. 먼저 파일을 run과 연결하고 두 축을 그리는 make()을 호출 한 다음 re_form()을 호출하여 두 번째 축을 제거하고 첫 번째 축을 넓 힙니다.

관련 문제