2015-12-14 16 views
16

Istnieje kilka (example) stanowisk SO związanych z używaniem GridSpec z ogólnie subpotowaniem. co próbuję osiągnąć bezskutecznie, jest umożliwienie korzystania z GridSpec z subplots, coś takiego, gdzie mogą zastąpić rzeczywistych tablicy i lista indeksów z jakiejś pętli kontrolowanej index:Jak używać `GridSpec()` z `subplots()`

gs = gridspec.GridSpec(4, 1, height_ratios=[2, 2, 1, 1])   
tPlot, axes = plt.subplots(4, sharex=True, sharey=False) 
tPlot.suptitle(node, fontsize=20) 
axes[0].plot(targetDay[0], gs[0]) 
axes[1].plot(targetDay[1], gs[1]) 
axes[2].scatter(targetDay[2], gs[2]) 
axes[3].plot(targetDay[3], gs[3]) 

nieproduktywny powiedzmy, że ten kod nie działa, to tylko przykład.

Odpowiedz

25

Zamiast nazywając gridspec.GridSpec przed subplots można wysłać kwargs do GridSpec z poziomu rozmowy subplots, używając gridspec_kw argument. Od docs:

gridspec_kw: dict

Dict ze słowami kluczowymi przekazany do konstruktora GridSpec użyte do wygenerowania siatki z wątków są wprowadzane.

Tak więc, na przykład:

import matplotlib.pyplot as plt 

tPlot, axes = plt.subplots(
     nrows=4, ncols=1, sharex=True, sharey=False, 
     gridspec_kw={'height_ratios':[2,2,1,1]} 
     ) 

tPlot.suptitle('node', fontsize=20) 

axes[0].plot(range(10),'ro-') 
axes[1].plot(range(10),'bo-') 
axes[2].plot(range(10),'go-') 
axes[3].plot(range(10),'mo-') 

plt.show() 

enter image description here