2015-07-17 19 views
7

1 alt sütunta, hepsi 1 sütunda python'da bir matplotlib çizimim var. I ile bir mesafeye sahipBazı alt yazılar arasındaki boşluk değil, tüm

gridspec.GridSpec(3, 1, height_ratios=[1, 3, 3]) 

:

Şu anda her subplot yüksekliğini kontrol

plt.subplots_adjust(hspace=0.0) 

Ama satır 2 ve sadece 3 arasında bir boşluk koymak istiyorum.

gs1.update(left=0.05, right=0.48, wspace=0) 

Ama gerçekten neler olduğunu anlamıyorum:

diğer cevapların birinde, ben böyle bir şey yapabileceği okuyun. Birisi bana biraz daha bilgi verebilir mi lütfen?

cevap

12

Güncelleştirmeyi aradığınızda, bu parametreleri söz konusu gridspec'deki tüm alt piksellere uygularsınız. Farklı altpipler için farklı parametreler kullanmak istiyorsanız, birden fazla gridspec oluşturabilirsiniz. Ancak, doğru boyutta olduklarından emin olmanız ve çakışmadığından emin olmanız gerekir. Bunun bir yolu iç içe gridspecs ile. Alttaki iki parselin toplam yüksekliği üstten 6 kat olduğu için, dış ızgara eğimi [1, 6] yükseklik oranına sahip olacaktır.

import matplotlib.pyplot as plt 
import matplotlib.gridspec as gridspec 


def do_stuff(cell): #just so the plots show up 
    ax = plt.subplot(cell) 
    ax.plot() 
    ax.get_xaxis().set_visible(False) 
    ax.get_yaxis().set_visible(False) 
plt.subplots_adjust(hspace=0.0) 
#make outer gridspec 
outer = gridspec.GridSpec(2, 1, height_ratios = [1, 6]) 
#make nested gridspecs 
gs1 = gridspec.GridSpecFromSubplotSpec(1, 1, subplot_spec = outer[0]) 
gs2 = gridspec.GridSpecFromSubplotSpec(2, 1, subplot_spec = outer[1], hspace = .05) 
for cell in gs1: 
    do_stuff(cell) 
for cell in gs2: 
    do_stuff(cell) 
plt.show() 

bu benim için çalıştı Plot with three subplots

+0

, teyit edebilir – jimh

İlgili konular