简体   繁体   中英

pandas - automate graph using the combination of two columns

What is the best way to automate the graph production in the following case:

  • I have a data frame with different plan and type in the columns
  • I want a graph for each combination of plan and type

Dataframe:

plan type  hour  ok    notok  other 
A    cont   0    60.0  40.0    0.0    
A    cont   1    56.6  31.2    12.2    
A    vend   2    30.0  50.0    20.0    
B    test   5    20.0  50.0    30.0     

For one df with only one plan and type, I wrote the following code:

fig_ = df.set_index('hour').plot(kind='bar', stacked=True, colormap='YlOrBr')
plt.xlabel('Hour')
plt.ylabel('(%)')
fig_.figure.savefig('p_hour.png', dpi=1000)
plt.show()

In the end, I would like to save one different figure for each combination of plan and type. Thanks in advance!

You can try iterating over groups using groupby :

for (plan, type), group in df.groupby(['plan', 'type']):
    fig_ = group.set_index('hour').plot(kind='bar', stacked=True, colormap='YlOrBr')
    plt.xlabel('Hour')  # Maybe add plan and type
    plt.ylabel('(%)')  # Maybe add plan and type
    fig_.figure.savefig('p_hour_{}_{}.png'.format(plan, type), dpi=1000)

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