Matplotlib에는 그림 창에 여러 축 세트를 배치하는 방법에 대한 문서화 된 방법이 있지만 한 축 세트의 위치를 정의하는 방법을 알 수는 없습니다 다른 축 세트의 위치matplotlib : 자동 업데이트로 다른 축에 대한 축 배치
이 잘 좋은 모든,하지만 난이 변경 될 때 하단의 크기가
#Change the size of the bottom plot
bbox2 = ax2.get_position()
ax2.set_position([bbox2.x0, bbox2.y0, bbox2.width, bbox2.height * 1.25])
ax2.set_ylim(0,60)
fig.savefig('overlapping_stacked_plots.png')
바닥을 축 : 예를 들어,
import matplotlib.pyplot as plt
import numpy as np
#Define data
x1 = np.arange(0,10,0.01)
y1 = np.sqrt(x1)
x2 = x1
y2 = 1.0/2.0 * x2**2.0
#Generate vertically stacked plots
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax1.plot(x1,y1)
ax2 = fig.add_subplot(212)
ax2.plot(x2,y2)
fig.savefig('nice_stacked_plots.png')
는 다음 플롯을 제공합니다 축이 상단 축과 중첩 됨
오버랩을 제거하기 위해 상단 축의 위치를 나중에 업데이트 할 수 있다는 것을 알았지 만 처음부터 하단 축을 기준으로 상단 축의 위치를 지정하고 자동으로 업데이트해야합니다.
예를 들어, annotate tutorial에서 OffsetFrom
클래스를 사용하여 주석을 배치 한 다음 첫 번째 주석의 지정된 오프셋에 두 번째 주석을 배치 할 수 있습니다. 첫 번째 주석이 이동하면 두 번째 주석도 함께 이동합니다. 축과 비슷한 것을하고 싶습니다.
. 난 당신이 다른 모든 subplots의 위치를 수정할 것이라고 무언가에 좌표 resize 이벤트를 연결할 필요가있을 것 같아요 ...하지만 난 (그냥 캔버스 크기를 조정) 축 resize 이벤트를 찾을 수 없었 워드 프로세서를 읽고. 그래서 당신은 축의 하위 클래스를 만들고 이벤트를 추가 할 수 있다고 생각합니다. 그러나 저는 파이썬을 아직 잘 이해하지 못했고 정확히 어떻게 할 지 모릅니다. –
예, 그런 내용이 필요하다는 데 동의합니다. 여기에서 응답이 없으므로 matplotlib github 페이지에서 기능 요청 (Issue [# 3926] (https://github.com/matplotlib/matplotlib/issues/3926))을 제출했습니다. – Stretch