2016-06-13 27 views
5

Ben I pivot_table kullanılarak oluşturulan aşağıdaki dataframe: boxplot birden içinValueError: num olmalıdır 1 <= num <2 değil, 3

enter image description here

ve aşağıdaki kodu kullanıyorum sütunlar:

:

fig = plt.figure() 
for i in range(0,25): 
    ax = plt.subplot(1,2,i+1) 
    toPlot1.boxplot(column='Score',by=toPlot1.columns[i+1],ax=ax) 
fig.suptitle('test title', fontsize=20) 
plt.show() 

aşağıdaki gibi bir çıktı bekliyordum

Ama bu kod bana aşağıdaki hatayı veriyor: Sadece bir grafik üzerinde 2 kutudiyagramlar olabilir çünkü inanmak

--------------------------------------------------------------------------- 
ValueError        Traceback (most recent call last) 
<ipython-input-275-9c68ce91596f> in <module>() 
     1 fig = plt.figure() 
     2 for i in range(0,25): 
----> 3  ax = plt.subplot(1,2,i+1) 
     4  toPlot1.boxplot(column='Score',by=toPlot1.columns[i+1],ax=ax) 
     5 fig.suptitle('test title', fontsize=20) 

E:\Anaconda2\lib\site-packages\matplotlib\pyplot.pyc in subplot(*args, **kwargs) 
    1020 
    1021  fig = gcf() 
-> 1022  a = fig.add_subplot(*args, **kwargs) 
    1023  bbox = a.bbox 
    1024  byebye = [] 

E:\Anaconda2\lib\site-packages\matplotlib\figure.pyc in add_subplot(self, *args, **kwargs) 
    1003      self._axstack.remove(ax) 
    1004 
-> 1005    a = subplot_class_factory(projection_class)(self, *args, **kwargs) 
    1006 
    1007   self._axstack.add(key, a) 

E:\Anaconda2\lib\site-packages\matplotlib\axes\_subplots.pyc in __init__(self, fig, *args, **kwargs) 
    62      raise ValueError(
    63       "num must be 1 <= num <= {maxn}, not {num}".format(
---> 64        maxn=rows*cols, num=num)) 
    65     self._subplotspec = GridSpec(rows, cols)[int(num) - 1] 
    66     # num - 1 for converting from MATLAB to python indexing 

ValueError: num must be 1 <= num <= 2, not 3 

?

Bunu nasıl düzeltebileceğiniz hakkında bir fikriniz var mı? Herhangi bir işaretçi çok takdir edilecektir.

TIA. Sadece iki subplots oluşturmak

cevap

10

Not:

ax = plt.subplot(1,2,i+1) 

ilk bağımsız her satırda parsellerin sayısı ve beher kolon için araziler ikinci sayısı (aynı zamanda the matplotlib.pyplot.subplot documentation bakınız). Bu durumda, davayla ilgili toplam parsel sayısı: 1*2 = 2. Eğer örnek bir kullanımı için elinden 25 oluşturmak istiyorsanız:

ax = plt.subplot(5,5,i+1) 

5 satır başına araziler ve 5 sütun başına çok 5*5 = 25

+2

teşekkür toplam sayıya ekleyin. Bu benim sonumdan çok aptaldı. Kendi kendine not edin: kopyalama kodu internette bulunmadan önce parametreleri doğru bir şekilde anlayın. – Patthebug

İlgili konular