Personalizar (estéticamente) histogramas obtenidos de strings en python

publicado por: Anonymous

Tengo un array de 400 elementos con sólo dos valores: hombre y mujer:

possible_genders = ['male','female']
gender =  [np.random.choice(possible_genders) for i in range(400)]

y el histograma por defecto the matplotlib luce bastante poco:

introducir la descripción de la imagen aquí

Estoy intentando poner barras gruesas que ocupen casi todo el diagrama y lo mejor que consigo es esto:

introducir la descripción de la imagen aquí

Me gustaría conservar el número de elementos que muestra el primer histograma en el eje y (vertical), una pequeña separación entre ambas barras y que las muescas del eje x que representan male y female estén centradas debajo de cada barra.

Toda la información que encuentro está relacionada con ejes numerados, ¿sabéis cómo puedo editar esto?

Gracias

solución

Si no lo conoces, puede interesarte investigar la biblioteca seaborn que usa por debajo matplotlib pero lo configura con unos estilos más “modernos” por defecto. Además te da otras funciones de muy alto nivel para crear autmáticamente gráficos de diferentes tipos que relacionan diferentes columnas de dataframes pandas.

En tu caso se usaría así:

import seaborn as sns
import pandas as pd
df = pd.DataFrame({"gender": gender})

# La creación del plot son dos líneas
sns.set_style("whitegrid")
sns.countplot(x="gender", data=df)

Y el resultado:

Resultado

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *