Cómo crear y anotar un gráfico de barras proporcionales apiladas
Estoy teniendo dificultades para crear un gráfico de barras apiladas a partir de value_counts()
de las columnas de un dataframe.
Supongamos un dataframe como el siguiente, donde responder
no es importante, pero me gustaría apilar el conteo de [1,2,3,4,5]
para todas las columnas q#
.
responder, q1, q2, q3, q4, q5
r1, 5, 3, 2, 4, 1
r2, 3, 5, 1, 4, 2
r3, 2, 1, 3, 4, 5
r4, 1, 4, 5, 3, 2
r5, 1, 2, 5, 3, 4
r6, 2, 3, 4, 5, 1
r7, 4, 3, 2, 1, 5
Algo parecido a esto, pero cada barra estaría etiquetada por q#
e incluiría 5 secciones para el recuento de [1,2,3,4,5]
de los datos:
Idealmente, todas las barras tendrán un ancho de “100%”, mostrando el recuento como una proporción de la barra. Sin embargo, está garantizado que cada fila de responder
tendrá una entrada para cada uno, por lo que el porcentaje es solo un extra si es posible.
Cualquier ayuda sería muy apreciada, con una ligera preferencia por una solución con matplotlib
.
davy.ai
Para crear un gráfico de barras apiladas derivado de
value_counts()
, puedes seguir los siguientes pasos:value_counts()
para obtener el conteo de cada valor en cada columna:plot.bar()
con el parámetrostacked=True
:El código completo se vería algo así:
Esto debería producir un gráfico de barras apiladas similar al mostrado en la imagen, con cada barra etiquetada por
q#
e incluyendo 5 secciones para el conteo de[1,2,3,4,5]
de los datos.