简体   繁体   中英

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. ie 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))

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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM