2011-12-20 2 views
2

저는 파이썬과 matplotlib에 매우 익숙하며 2 플롯 서브 플로트 창 높이를 조정하는 데 어려움이 있습니다. 서브 플로트를 수직으로 정렬하려고합니다. 다른 하나의 바로 위에 서브 플로트를 수직으로 정렬하려고합니다. 하단의 서브 플로트는 상단의 높이와 절반의 높이가되어야합니다. 내가 시도하고 width_ratios를 사용하면 나는 내가 기대하는 바를 정확히 얻는다 (그것이 내가 원하는 바는 아니지만). 그러나 height_ratios를 사용할 때 두 플롯을 둘 다 가로로 정렬하고 둘 다 서브 플롯의 높이의 절반에 해당하는 빈 공간을 배치합니다. 코드의 관련 부분은 내가 아주 간단한 (그리고 아마도 벙어리)하지만 내 초보자의 눈에 내가 그것을 볼 수없는 뭔가를하고 있어요 확신 Python/Gridspec height_ratio 문제

pl.figure() 

grid = gs.GridSpec(1, 2, height_ratios=[2,1]) 

ax1 = pl.subplot(grid[0]) 
ax2 = pl.subplot(grid[1]) 

이하입니다. 1 :이 두

답변

1

당신은 당신의 Gridspec 문에서 행과 열을 전환 :

grid = gs.GridSpec(2,1 , height_ratios=[2,1]) 

작품.

+0

감사합니다. 나는 그것이 단순한 무엇인지 알았다. 그것을 잡는 것에 감사하는 tillsten! 또한 할 수있는 대체 방법을 제공 한 joaquin 덕분입니다! – user1108844

1

는 비율 3가

import matplotlib.pyplot as plt 

#   left bott width height 
rect_bot = [0.1, 0.1, 0.8, 0.6] 
rect_top = [0.1, 0.75, 0.8, 0.2] 

plt.figure(1, figsize=(8,8)) 

bot = plt.axes(rect_bot) 
top = plt.axes(rect_top) 

bot.plot([3, 2, 60, 4, 7]) 
top.plot([2, 3, 5, 3, 2, 4, 6]) 

plt.show() 

enter image description here

당신이 원하는 비율과 측면을 얻을 rect_toprect_bot 하단 좌표와 높이를 조정할 수 있습니다. 다음은 ratio의 값을 수정하여 비율을 변경하는 빠른 방법을 제공합니다. 이것은 당신이 기대하는 비율 준다 (1 : 2) :

left, width = 0.1, 0.8 

ratio = 2 
border = 0.1 
total = 1 

bh = (total - 3 * border)/(total + ratio) 
th = ratio * bh 
tb = bh + 2 * border 

#   left bott width height 
rect_bot = [left, border, w,  bh] 
rect_top = [left, tb, width,  th]