web-dev-qa-db-fra.com

Parcelle de bar avec groupby

Ma variable catégorielle case_satus prend quatre valeurs uniques. J'ai des données de 2014 à 2016. Je voudrais tracer la distribution de case_status regroupés par année. J'essaie de le faire en utilisant:

df.groupby('year').case_status.value_counts().plot.barh()

Et je reçois l'intrigue suivante:

output

Ce que j'aimerais avoir, c'est une représentation plus agréable. Par exemple, où j'ai une couleur pour chaque année, et tous les "REFUSÉS" se tiendraient côte à côte.

Je pense que cela peut être réalisé car l'objet groupby est un multi-index, mais je ne le comprends pas assez bien pour créer l'intrigue que je veux.


La solution est:

df.groupby('year').case_status.value_counts().unstack(0).plot.barh()

et se traduit par

enter image description here

10
jacob

Je pense que vous devez ajouter unstack pour DataFrame:

df.groupby('year').case_status.value_counts().unstack().plot.barh()

Le niveau de changement est également possible:

df.groupby('year').case_status.value_counts().unstack(0).plot.barh()
11
jezrael