相关文章推荐
善良的拐杖  ·  二十五、oracle ...·  3 月前    · 
奔跑的铁板烧  ·  MetaMask ...·  1 年前    · 
俊逸的电脑桌  ·  2. ...·  2 年前    · 
鬼畜的椰子  ·  备份和还原 - Azure ...·  2 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams 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()

I was expecting an output like the following:

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)
   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)
-> 1005             a = subplot_class_factory(projection_class)(self, *args, **kwargs)
   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

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.

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 plots per row and 5 per column add to a total number of 5*5 = 25

Thanks so much. That was very silly from my end. Note to self: understand parameters properly before copy-pasting code available on the internet. – Patthebug Jun 13, 2016 at 22:39

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.