user3600952
user3600952

Reputation:

Plotting a pandas DataFrame - group by - how to add a different title to each produced plot

I have a pandas dataframe and want to plot one value versus another, based on a particular field. So I have 5 different types in 'Topic' and I want to plot each. Code as below at present.

    dfCombinedToPlot.groupby('Topic').plot(x='DataValue', y='CasesPer100kPop', style='o')  
    # plt.title()  Want this to equal "'Topic' vs number of cases"
    # plt.xlabel() Want this to equal 'Topic'  
    # plt.ylabel()  
    plt.show()

I have 3 questions. 1. Can I add a title/xlabel to each of these which matches that from the Topic? So if the topic was "Asthma", I want the title/x label to be "Asthma", and then the next one to be "Bronchitis", and so on. 2. I want to add these on the same plot if possible, I will decide how many looks well when I see them. How do I do this? 3. (Bonus question!!) Can I easily add a "best fit" line to each plot?

Thanks all.

Upvotes: 1

Views: 817

Answers (1)

jcaliz
jcaliz

Reputation: 4021

groupby.plot method returns a list of axes you can use to set titles, for example if there are only two axes:

axes = dfCombinedToPlot.groupby('Topic').plot(x='DataValue', y='CasesPer100kPop', style='o')

titles = ['Asthma', 'Bronchitis']
count = 0
for ax in axes:
    ax.set_title(f'{titles[count]}')
    ax.set_xlabel(f'{titles[count]}')
    count += 1

plt.show()

To do the best fit, I assume is a linear regression, so it might worth checking regplot

Upvotes: 1

Related Questions