Issue
This is my current code using a dataset of causes of death within the united states by number of occurrences:
`top_cause_of_death_barplot=sns.catplot(data=death, x='cause_name',
y='deaths',kind='bar',ci=None,legend_out=False,height=10, aspect=1.5)
plt.xlabel('Causes of Death',fontsize=15)
top_cause_of_death_barplot.set_xticklabels(fontsize=10)
plt.ylabel('Number of Observed Deaths',fontsize=15)
plt.title('Top Ten Leading Causes of Death in the United States (1999-2017)',fontsize=20)`
This results in a chart that looks like this:
I was attempting to re-order the graph such that the bars were in descending order. I added a bit to my code and got this:
`result = death.groupby(["cause_name"])
['deaths'].aggregate(np.median).reset_index().sort_values('cause_name')
top_cause_of_death_barplot=sns.catplot(data=death, x='cause_name',
y='deaths',kind='bar',ci=None,legend_out=False,height=10, aspect=1.5, order=result['cause_name'] )
plt.xlabel('Causes of Death',fontsize=15)
top_cause_of_death_barplot.set_xticklabels(fontsize=10)
plt.ylabel('Number of Observed Deaths',fontsize=15)
plt.title('Top Ten Leading Causes of Death in the United States (1999-2017)',fontsize=20)`
While this code did not give me any errors, all it seemed to do was reorder the bars in a different, random order like so:
Why does this happen? What am I doing wrong, and is there some way of rearranging the bars into ascending or descending order that I am not aware of?
Solution
You have to pass values of x=
to order=
. In your case, I would do:
death = pd.read_csv('https://storage.googleapis.com/hewwo/NCHS_-_Leading_Causes_of_Death__United_States.csv', sep=',', header=0)
plot_order = death.groupby('Cause Name')['Deaths'].sum().sort_values(ascending=False).index.values
sns.catplot(data=death, x='Cause Name', y='Deaths',kind='bar',ci=None, legend_out=False, order=plot_order)
Or, if you want to remove the "All causes" bar:
sns.catplot(data=death, x='Cause Name', y='Deaths',kind='bar',ci=None, legend_out=False, order=plot_order[1:])
Answered By - Diziet Asahi
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.