Python ValueError:num必须为1<;=num<;=2,而不是3

Python ValueError:num必须为1<;=num<;=2,而不是3,python,pandas,boxplot,Python,Pandas,Boxplot,我有以下使用透视表生成的dataframe: 我使用以下代码来boxplot多列: 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() 我期望得到如下输出: 但这

我有以下使用透视表生成的
dataframe

我使用以下代码来
boxplot
多列:

    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()
我期望得到如下输出:

但这段代码给了我以下错误:

---------------------------------------------------------------------------
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
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
1图=plt.图()
2对于范围(0,25)内的i:
---->3 ax=plt.子批次(1,2,i+1)
4 toPlot1.boxplot(column='Score',by=toPlot1.columns[i+1],ax=ax)
5图suptitle(“测试标题”,fontsize=20)
E:\Anaconda2\lib\site packages\matplotlib\pyplot.pyc在子地块(*args,**kwargs)
1020
1021图=gcf()
->1022 a=图add_子地块(*args,**kwargs)
1023 bbox=a.bbox
1024字节=[]
E:\Anaconda2\lib\site packages\matplotlib\figure.pyc在add_子包中(self,*args,**kwargs)
1003自\u axstack.移除(ax)
1004
->1005 a=子地块等级工厂(投影等级)(自,*args,**kwargs)
1006
1007自\u axstack.add(键,a)
E:\Anaconda2\lib\site packages\matplotlib\axes\\u subplots.pyc在uuuu初始化中(self,图,*args,**kwargs)
62升值错误(

63“num必须为1注意,您只生成两个子批次:

ax = plt.subplot(1,2,i+1)
第一个参数是每行的绘图数,第二个参数是每列的绘图数(另请参见)。因此,在您的情况下,可用的绘图总数为:
1*2=2
。如果要创建25个,可以使用以下参数:

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

每行5个绘图,每列5个绘图,加上总数
5*5=25

非常感谢。从我的角度来看,这是非常愚蠢的。自我说明:在复制粘贴互联网上可用的代码之前,请正确理解参数。