Gráficos de barras apilados con Matplotlib de Python
Como era de esperar, el gráfico es difícil de leer. Probemos el gráfico de barras apiladas y añadamos algunos ajustes.
Primero, podemos ordenar los valores antes de trazarlos, lo que nos dará un mejor sentido del orden y facilitará la comparación de las barras. Lo haremos con la columna ‘Ventas globales’ ya que tiene el total.
## sort values
df_grouped = df_grouped.sort_values('Global_Sales')
df_grouped
Antes, para construir un gráfico de barras agrupadas, utilizamos un gráfico para cada región en el que el parámetro de anchura y los ajustes en el eje x nos ayudaron a ajustar las cuatro áreas de cada plataforma.
De forma similar, para construir gráficos de barras agrupadas, utilizaremos un gráfico para cada región. Esta vez utilizaremos el parámetro inferior/izquierdo para indicar a Matplotlib lo que precede a las barras que estamos dibujando.
plt.bar(, )
plt.bar(, , bottom = )
plt.show()plt.barh(, )
plt.barh(, , left = )
plt.show()
Cool. Podemos utilizar un bucle para trazar las barras, pasando una lista de ceros para el parámetro ‘bottom’ en el primer conjunto y acumulando los siguientes valores para las siguientes regiones.
fields =
colors =
labels = # figure and axis
fig, ax = plt.subplots(1, figsize=(12, 10))# plot bars
left = len(df_grouped) *
for idx, name in enumerate(fields):
plt.barh(df_grouped.index, df_grouped, left = left, color=colors)
left = left + df_grouped# title, legend, labels
plt.title('Video Game Sales By Platform and Region\n', loc='left')
plt.legend(labels, bbox_to_anchor=(), ncol=4, frameon=False)
plt.xlabel('Millions of copies of all games')# remove spines
ax.spines.set_visible(False)
ax.spines.set_visible(False)
ax.spines.set_visible(False)
ax.spines.set_visible(False)# adjust limits and draw grid lines
plt.ylim(-0.5, ax.get_yticks() + 0.5)
ax.set_axisbelow(True)
ax.xaxis.grid(color='gray', linestyle='dashed')plt.show()
Grandioso, esto es mucho más legible que el anterior.
Es importante recordar el propósito de este gráfico antes de intentar extraer cualquier idea. La idea es comparar las ventas totales de las plataformas y entender la composición de cada una de ellas.
Comparar los totales entre campos y comparar las regiones dentro de una barra está bien. En cambio, comparar regiones de diferentes barras puede ser muy engañoso.
En este caso, podemos comparar la región de NA en todas las barras, ya que tiene el mismo punto de partida en todas ellas, pero no es tan fácil comparar las demás. Por ejemplo, la X360 tiene un valor más bajo para JP que la PS2, pero es difícil comparar si el valor de Otros es mayor o menor que el de la Wii.