Personalización de los ejes en pandas

El método plot de pandas incluye varios argumentos para personalizar los ejes: límites, ticks, rotación y escala. Todo lo demás se puede cambiar con matplotlib sobre los ejes que devuelve plot.

Límites de los ejes

Establece los límites de los ejes con xlim e ylim, pasando una tupla con el mínimo y el máximo.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"usuarios": [1200, 2600, 5900, 14000, 31000, 72000, 160000, 350000]},
                  index = range(2018, 2026))

df.plot(marker = "o", ylim = (0, 400000), xlim = (2017.5, 2025.5))
# plt.show()

Establecer los límites de los ejes de un gráfico de pandas

Ticks y etiquetas de los ticks

xticks e yticks establecen la posición de los ticks, rot rota las etiquetas del eje X y fontsize cambia el tamaño de las etiquetas de los ticks.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"usuarios": [1200, 2600, 5900, 14000, 31000, 72000, 160000, 350000]},
                  index = range(2018, 2026))

df.plot.bar(yticks = [0, 100000, 200000, 300000], rot = 45, fontsize = 12)
# plt.show()

Ticks personalizados y rotación de las etiquetas en un gráfico de pandas

Escala logarítmica

Utiliza logy = True para un eje Y logarítmico, logx = True para el eje X o loglog = True para ambos.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"usuarios": [1200, 2600, 5900, 14000, 31000, 72000, 160000, 350000]},
                  index = range(2018, 2026))

df.plot(logy = True, marker = "o", grid = True)
# plt.show()

Escala logarítmica en un gráfico de pandas

Formato de los números de los ejes

Para dar formato a los números de los ejes, por ejemplo como porcentajes o con separador de miles, utiliza los formateadores de matplotlib.ticker sobre los ejes que devuelve plot.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"usuarios": [1200, 2600, 5900, 14000, 31000, 72000, 160000, 350000]},
                  index = range(2018, 2026))
from matplotlib.ticker import StrMethodFormatter

ax = df.plot.bar(rot = 0)
ax.yaxis.set_major_formatter(StrMethodFormatter("{x:,.0f}"))
# plt.show()

Formato de los números de los ejes de un gráfico de pandas

Grid y bordes

Agrega un grid con grid = True y elimina los bordes superior y derecho con matplotlib.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"usuarios": [1200, 2600, 5900, 14000, 31000, 72000, 160000, 350000]},
                  index = range(2018, 2026))

ax = df.plot(marker = "o", grid = True)
ax.spines[["top", "right"]].set_visible(False)
# plt.show()

Grid y bordes en un gráfico de pandas

Para personalizar el eje de fechas de las series temporales consulta el tutorial sobre el eje de fechas en matplotlib y para más opciones de los ejes el tutorial sobre la personalización de los ejes en matplotlib.

Better Data Visualizations

A Guide for Scholars, Researchers, and Wonks

Comprar en Amazon

También te puede interesar