ValueError:num必须为1< = num< = 2,而不是3 [英] ValueError: num must be 1 <= num <= 2, not 3
问题描述
我有以下使用pivot_table
生成的dataframe
:
并且我正在使用以下代码boxplot
多列:
and I'm using the following code to boxplot
the multiple columns:
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()
我期望输出如下:
但是此代码给我以下错误:
But this code gives me the following error:
---------------------------------------------------------------------------
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
我相信这是因为一张图上只能有2个箱型图?
I believe it's because there can only be 2 boxplots on one graph?
关于如何解决此问题的任何想法?任何指针将不胜感激.
Any idea on how to fix this? Any pointers would be highly appreciated.
TIA.
推荐答案
请注意,您仅生成两个子图:
Note that you only generate two subplots:
ax = plt.subplot(1,2,i+1)
第一个参数是每行中的打印数量,第二个参数是每列中的打印数量(另请参见
The first argument is the number of plots in each row and the second the number of plots per column (see also the matplotlib.pyplot.subplot documentation). So the total number of plots avaiable in your case is: 1*2 = 2
. If you want to create 25 you could for example use:
ax = plt.subplot(5,5,i+1)
每行5个图和每列5个图总计为5*5 = 25
5 plots per row and 5 per column add to a total number of 5*5 = 25
这篇关于ValueError:num必须为1< = num< = 2,而不是3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!