IcemanBerlin
IcemanBerlin

Reputation: 3437

Add a subplot within a figure using a for loop and python/matplotlib

I dont think you need all the code to help me with this, this was working 3 months ago but now the subplots are not getting added to the same figure. i.e. I want one figure 2 by 2 populated with a different line chart for each of the 4 countries in my table. what i currently get is one figure with 4 empty charts and 4 subsequent individual charts. why is this not getting adding to the same chart correctly now?

I have upgraded python and pandas since that time and anaconda(spyder) which I use. I am currently using the following versions:

Python 2.7.5 |Anaconda 1.8.0 (64-bit) Matplotlib 1.3.1 Pandas 0.15.2

for i, group in df.groupby('Country'):
   chrt += 1 
   fig1.add_subplot(2,2, chrt)
   #fig1.subplots_adjust(hspace=1)
   group.plot(x='Month', y='Value (USD)',title= str(i))

Upvotes: 0

Views: 2850

Answers (1)

Julien Spronck
Julien Spronck

Reputation: 15433

A few things come to mind. Make sure fig1 and chrt are well initialized. Then, you can specify which axis it plots on with the ax keyword.

import matplotlib.pyplot as plt
fig1 = plt.figure()
chrt = 0
for i, group in df.groupby('Country'):
    chrt += 1 
    ax = fig1.add_subplot(2,2, chrt)
    group.plot(x='Month', y='Value (USD)',title=str(i), ax=ax)

Upvotes: 4

Related Questions