Eliminar ejes en Matplotlib: una guía completa
Published on
Matplotlib es una poderosa biblioteca de Python para visualización de datos, pero para crear gráficos realmente efectivos, a veces necesitas eliminar ciertos elementos como los ejes. Si te has preguntado cómo eliminar ejes en Matplotlib, esta guía es tu punto de partida perfecto. Vamos a explorar cómo hacer que tus gráficos brillen al eliminar elementos innecesarios, siguiendo las mejores prácticas de la propia documentación de Matplotlib y la sabiduría de la comunidad.
Empezando: ¿Qué son los ejes en Matplotlib?
Antes de comenzar, es importante entender a qué nos referimos con 'ejes' en Matplotlib. El término 'ejes' se refiere al eje x y al eje y en un gráfico, incluyendo las etiquetas, las marcas y la línea que rodea el área del gráfico. Cuando eliminamos los ejes, nos queda un gráfico limpio y minimalista que se enfoca en la presentación de los datos sin distracciones adicionales.
¿Por qué eliminar ejes?
Existen varias razones por las que puedes querer eliminar los ejes de un gráfico en Matplotlib. Quizás la razón más común sea crear una apariencia visual más limpia y sencilla. Al eliminar los ejes, las líneas de la cuadrícula y las etiquetas, puedes ayudar a que los espectadores se concentren en la parte más crucial de tu visualización: los datos.
Eliminar ejes: lo básico
Ahora, pasemos directamente al meollo del asunto: cómo eliminar ejes en Matplotlib. El proceso es bastante simple y solo requiere unas pocas líneas de código. Considera este ejemplo básico:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y)
plt.gca().set_axis_off()
plt.show()
En este script, utilizamos la función gca()
para obtener los ejes actuales y luego llamamos al método set_axis_off()
para desactivar los ejes. Después de ejecutar este script, deberías ver un gráfico de líneas sin ejes visibles.
Eliminar ejes y guardar la figura
¿Qué pasa si quieres guardar tu gráfico sin ejes? Matplotlib proporciona un método sencillo para guardar tus gráficos en un archivo. Así es cómo puedes guardar un gráfico sin ejes:
plt.plot(x, y)
plt.gca().set_axis_off()
plt.savefig('my_plot.png', bbox_inches='tight', pad_inches = 0)
plt.close()
La función savefig()
se utiliza para guardar la figura actual y pasamos el nombre de archivo 'my_plot.png' como argumento. Los parámetros bbox_inches='tight'
y pad_inches=0
eliminan el relleno adicional alrededor del gráfico en la figura guardada. Después de ejecutar este script, debería aparecer un nuevo archivo llamado 'my_plot.png' en tu directorio actual, que contiene tu gráfico guardado sin ejes.
Avanzado: eliminar ejes de subgráficos
Hasta ahora, hemos hablado de cómo eliminar ejes de un único gráfico. Pero ¿qué pasa si tienes varios subgráficos y quieres eliminar los ejes de todos ellos o de alguno específico? Así es cómo hacerlo:
fig, axs = plt.subplots(2, 2)
for ax in axs.flat:
ax.set_axis_off()
plt.savefig('subplot_no_axes.png', bbox_inches='tight', pad_inches = 0)
plt.close()
En este código, creamos una cuadrícula de subgráficos de 2x2 utilizando la función plt.subplots()
, y luego iteramos sobre cada subgráfico (accediendo a ellos mediante axs.flat
), eliminando los ejes con ax.set_axis_off()
. Luego, la figura se guarda como antes, creando un archivo de imagen con múltiples subgráficos, cada uno sin ejes.
Alternativas a la eliminación de ejes: ajustar la apariencia de los ejes
En algunos casos, es posible que desees conservar los ejes pero hacer que sean menos llamativos. Matplotlib ofrece muchas opciones para personalizar la apariencia de los ejes. Aquí tienes un ejemplo de cómo hacer que los ejes sean menos llamativos al reducir el ancho de línea y cambiar el color:
ax = plt.gca()
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_linewidth(0.5)
ax.spines['left'].set_linewidth(0.5)
ax.spines['right'].set_color('none')
En este script, primero obtenemos los ejes actuales con plt.gca()
. Luego utilizamos la propiedad spines
para acceder a cada uno de los cuatro lados de los ejes ('top', 'bottom', 'left' y 'right'). Luego llamamos a set_color('none')
para eliminar los lados superiores y derechos de los ejes, y set_linewidth(0.5)
para hacer que los lados inferiores y izquierdos sean más delgados.
Alternativa a Matplotlib: visualiza datos con PyGWalker
Además de utilizar Matplotlib para visualizar tu marco de datos pandas, aquí tienes una alternativa, una biblioteca de Python de código abierto que puede ayudarte a crear visualizaciones de datos con facilidad: PyGWalker (opens in a new tab).
¡Ya no es necesario realizar un procesamiento complicado con código Python, simplemente importa tus datos y arrastra y suelta variables para crear todo tipo de visualizaciones de datos! Aquí tienes un rápido video demostrativo sobre cómo usarlo:
Así es como puedes usar PyGWalker en tu bloc de notas de Jupyter:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Alternativamente, puedes probarlo en Kaggle Notebook/Google Colab:
PyGWalker se basa en el apoyo de nuestra comunidad de código abierto. No olvides visitar PyGWalker en GitHub (opens in a new tab) ¡y darnos una estrella!
Conclusión
Eliminar los ejes en Matplotlib puede ayudarte a crear visualizaciones más limpias y impactantes, al centrar la atención en los datos. Esta guía te ha mostrado cómo eliminar los ejes de una sola gráfica o de múltiples subgráficas, y cómo ajustar la apariencia de los ejes para que sean menos obstrusivos. Con estas técnicas en tu arsenal, estás preparado para crear gráficas minimalistas impresionantes con Matplotlib.
Preguntas frecuentes
P: ¿Hay casos en los que no es recomendable eliminar los ejes en Matplotlib?
Sí, eliminar los ejes a veces puede hacer que sea difícil interpretar una gráfica, especialmente cuando la escala o proporción de los datos son importantes. Siempre debes considerar las necesidades de tu audiencia y la naturaleza de tus datos al decidir si eliminar los ejes es apropiado.
P: ¿Puedo eliminar los ejes de las gráficas creadas con Seaborn, que se basa en Matplotlib?
Sí, puedes eliminar los ejes de las gráficas de Seaborn de la misma manera que en las gráficas de Matplotlib. Seaborn utiliza Matplotlib por debajo, por lo que los mismos comandos funcionarán.
P: ¿Puedo agregar un título a mi gráfica después de eliminar los ejes?
Sí, eliminar los ejes no afecta la capacidad de añadir un título a tu gráfica. Puedes usar la función plt.title()
para añadir un título en cualquier momento.