Gráfico de barras en pandas

pandas crea gráficos de barras con plot.bar (barras verticales) y plot.barh (barras horizontales). El índice de los datos se utiliza para las categorías y cada columna se convierte en un grupo de barras.

Gráfico de barras con plot.bar

Llamar a plot.bar sobre un data frame con varias columnas crea un gráfico de barras agrupadas. Utiliza rot = 0 para mantener las etiquetas en horizontal.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"oro": [40, 40, 20, 18, 16],
                   "plata": [44, 27, 12, 19, 26],
                   "bronce": [42, 24, 13, 16, 22]},
                  index = ["EE. UU.", "China", "Japón", "Australia", "Francia"])

df.plot.bar(rot = 0)
# plt.show()

Gráfico de barras agrupadas en pandas

Gráfico de barras de una sola columna

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"oro": [40, 40, 20, 18, 16],
                   "plata": [44, 27, 12, 19, 26],
                   "bronce": [42, 24, 13, 16, 22]},
                  index = ["EE. UU.", "China", "Japón", "Australia", "Francia"])

df["oro"].plot.bar(rot = 0, color = "#D4AF37")
# plt.show()

Gráfico de barras de una sola columna en pandas

Gráfico de barras horizontal

plot.barh crea barras horizontales, que son más fáciles de leer cuando las etiquetas son largas. Ordena los valores antes de representarlos para crear un gráfico de barras ordenado.

import pandas as pd
import matplotlib.pyplot as plt

s = pd.Series({"Python": 52, "JavaScript": 45, "SQL": 38, "Java": 30, "C#": 27})

s.sort_values().plot.barh()
# plt.show()

Gráfico de barras horizontal ordenado en pandas

Gráfico de barras apiladas

Establece stacked = True para apilar las columnas unas sobre otras en lugar de colocarlas una al lado de la otra.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"oro": [40, 40, 20, 18, 16],
                   "plata": [44, 27, 12, 19, 26],
                   "bronce": [42, 24, 13, 16, 22]},
                  index = ["EE. UU.", "China", "Japón", "Australia", "Francia"])

df.plot.bar(stacked = True, rot = 0)
# plt.show()

Gráfico de barras apiladas en pandas

Colores y anchura

Pasa una lista de colores (uno por columna) a color, o un diccionario que asigne un color a cada columna. width establece la anchura de las barras.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"oro": [40, 40, 20, 18, 16],
                   "plata": [44, 27, 12, 19, 26],
                   "bronce": [42, 24, 13, 16, 22]},
                  index = ["EE. UU.", "China", "Japón", "Australia", "Francia"])

df.plot.bar(color = {"oro": "#D4AF37", "plata": "#A8A9AD", "bronce": "#CD7F32"},
            width = 0.8, rot = 0)
# plt.show()

Cambiar los colores y la anchura de un gráfico de barras de pandas

Agregar los valores encima de las barras

plot.bar devuelve los ejes de matplotlib, por lo que puedes agregar los valores de cada grupo de barras con bar_label.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"oro": [40, 40, 20, 18, 16],
                   "plata": [44, 27, 12, 19, 26],
                   "bronce": [42, 24, 13, 16, 22]},
                  index = ["EE. UU.", "China", "Japón", "Australia", "Francia"])

ax = df.plot.bar(rot = 0, width = 0.8)

for container in ax.containers:
    ax.bar_label(container, fontsize = 8)
# plt.show()

Gráfico de barras con etiquetas de los valores en pandas

Consulta la guía sobre gráficos con pandas para más opciones o aprende a crear un gráfico de barras en matplotlib y un gráfico de barras apiladas en matplotlib.

Better Data Visualizations

A Guide for Scholars, Researchers, and Wonks

Comprar en Amazon
Data Sketches

A journey of imagination, exploration, and beautiful data visualizations

Comprar en Amazon

También te puede interesar