Un caso concreto del gráfico de barras -y el más frecuente, por otro lado- es aquel en el que queremos que la longitud de la barra sea proporcional al número de elementos representado por ella. En seaborn podemos conseguir esta funcionalidad con la función a nivel de figura seaborn.catplot con el argumento kind = "count" o con la función a nivel de ejes seaborn.countplot. Por ejemplo, si deseamos saber el número de propinas por día de la semana del dataset tips:
tips = sns.load_dataset("tips")
sns.catplot(x = "day", data = tips, kind = "count");
Sorprendentemente, seaborn no ofrece ninguna forma de mostrar las etiquetas sobre las columnas. Para esto no nos queda más remedio que calcularlas nosotros y mostrarlas haciendo uso de las herramientas de matplotlib:
groupedvalues = tips.groupby('day').sum().reset_index()
g = sns.barplot(x = 'day', y = 'tip', data = groupedvalues)
for index, row in groupedvalues.iterrows():
g.text(row.name, row.tip - 16, round(row.total_bill, 2), color = 'white', ha = "center")
Para mostrar el gráfico horizontalmente, basta indicar con el parámetro y los datos (en lugar de hacerlo con el parámetro x):
sns.catplot(y = "day", data = tips, kind = "count");
Podemos crear gráficos de barras agrupadas -y añadir, por lo tanto, una dimensión adicional a la gráfica- recurriendo al parámetro hue, que provoca que cada barra se multiplique por el número de valores distintos de la variable indicada por este argumento:
sns.catplot(x = "day", data = tips, kind = "count", hue = "sex");