Domina Matplotlib y PyGWalker: Impresionantes gráficos de dataframes en Python
Updated on
La visualización de datos es una parte importante de la ciencia de datos, ya que nos ayuda a comprender los datos de manera más fácil y tomar decisiones más informadas. En esta guía completa, podrás aprender cómo utilizar Matplotlib para crear gráficos impresionantes a partir de dataframes de Pandas, personalizar tus visualizaciones y guardarlas para compartirlas. Explora técnicas básicas y avanzadas de trazado, y descubre la alternativa de código abierto, PyGWalker, para una experiencia mejorada y fácil de usar. Mejora tus habilidades de análisis de datos con nuestro tutorial paso a paso.
¿Qué es Matplotlib?
Matplotlib es una biblioteca de Python para crear visualizaciones estáticas, animadas e interactivas en Python. Proporciona una amplia gama de herramientas para crear varios tipos de gráficos, incluyendo gráficos de líneas, gráficos de dispersión, gráficos de barras, histogramas y más. También permite personalizar los gráficos, incluyendo el cambio de colores, etiquetas, fuentes y más.
Gráficos básicos con Matplotlib
Para comenzar con Matplotlib, primero importaremos la biblioteca y crearemos un dataframe sencillo de Pandas:
import matplotlib.pyplot as plt
import pandas as pd
# Crear un dataframe sencillo de Pandas
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)
Luego, podemos crear un gráfico de líneas básico con Matplotlib utilizando la función plot:
plt.plot(df['x'], df['y'])
plt.show()
Esto mostrará un gráfico de líneas sencillo de nuestros datos.
También podemos personalizar nuestro gráfico agregando etiquetas, ajustando los colores y cambiando el estilo de la línea:
plt.plot(df['x'], df['y'], color='red', linestyle='dashed', linewidth=2, marker='o')
plt.xlabel('Eje X')
plt.ylabel('Eje Y')
plt.title('Gráfico de Líneas Simple')
plt.show()
Esto mostrará un gráfico de líneas personalizado con etiquetas y un título.
Gráfico de Líneas con Dataframe de Matplotlib
Para crear un gráfico de líneas con Matplotlib, podemos usar la función plot:
# Crear un dataframe de Pandas con varias columnas
data = {'x': [1, 2, 3, 4, 5], 'y1': [2, 4, 6, 8, 10], 'y2': [1, 3, 5, 7, 9]}
df = pd.DataFrame(data)
# Crear un gráfico de líneas con varias líneas
plt.plot(df['x'], df['y1'], label='y1')
plt.plot(df['x'], df['y2'], label='y2')
plt.legend()
plt.show()
Esto mostrará un gráfico de líneas con múltiples líneas.
Gráfico de Barras con Dataframe de Matplotlib
Para crear un gráfico de barras con Matplotlib, podemos usar la función bar:
# Crear un dataframe de Pandas con varias columnas
data = {'x': ['A', 'B', 'C', 'D', 'E'], 'y1': [2, 4, 6, 8, 10], 'y2': [1, 3, 5, 7, 9]}
df = pd.DataFrame(data)
# Crear un gráfico de barras
fig, ax = plt.subplots()
ax.bar(df['x'], df['y1'], label='y1')
ax.bar(df['x'], df['y2'], label='y2')
ax.legend()
plt.show()
En este ejemplo, creamos un dataframe de Pandas con dos columnas 'y1' y 'y2', y una columna categórica 'x'. Luego, trazamos dos barras para cada valor de 'x', una para 'y1' y otra para 'y2'. También añadimos una leyenda en el gráfico para distinguir las barras.
Gráfico de Dispersión con Dataframe de Matplotlib
Los gráficos de dispersión son útiles para mostrar la relación entre dos variables continuas. Podemos utilizar Matplotlib para crear gráficos de dispersión con dataframes de Pandas utilizando la función scatter.
# Crear un dataframe de Pandas con dos columnas
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)
# Crear un gráfico de dispersión
fig, ax = plt.subplots()
ax.scatter(df['x'], df['y'])
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.show()
En este ejemplo, creamos un dataframe de Pandas con dos columnas 'x' e 'y'. Luego, trazamos un gráfico de dispersión de 'x' versus 'y'. También establecemos las etiquetas para el eje x y el eje y.
Aumentar el Tamaño del Gráfico en Matplotlib
A veces puede ser necesario aumentar el tamaño del gráfico para que sea más legible o para incluir más información. Podemos hacer esto estableciendo el tamaño de la figura en Matplotlib.
# Crear un dataframe de Pandas con una columna
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)
# Crear un gráfico de líneas con tamaño aumentado
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(df['x'], df['y'])
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.show()
En este ejemplo, creamos un dataframe de Pandas con dos columnas 'x' e 'y'. Luego, trazamos un gráfico de líneas de 'x' versus 'y' con un tamaño mayor de 10 por 6. También establecemos las etiquetas para el eje x y el eje y.
Cambiar el Color del Gráfico de Barras en Matplotlib Basado en el Valor
Podemos personalizar los colores de las barras en un gráfico de barras de Matplotlib basado en los valores que representan. Por ejemplo, podemos establecer el color de la barra en rojo si el valor es negativo y en verde si el valor es positivo.
# Crear un dataframe de Pandas con una columna
data = {'x': ['A', 'B', 'C', 'D', 'E'], 'y': [-2, 4, -6, 8, -10]}
df = pd.DataFrame(data)
# Crear un gráfico de barras con colores basados en el valor
fig, ax = plt.subplots()
colors = ['r' if y < 0 else 'g' for y in df['y']]
ax.bar(df['x'], df['y'], color=colors)
ax.set_xlabel('Etiqueta X')
ax.set_ylabel('Etiqueta Y')
ax.set_title('Gráfico de Barras con Colores Basados en el Valor')
plt.show()
Esto producirá un gráfico de barras con barras rojas para valores negativos y barras verdes para valores positivos.
Gráfico de Matplotlib como Tabla
Además de crear gráficos, Matplotlib también se puede utilizar para crear tablas a partir de dataframes de Pandas. Esto puede ser útil para mostrar estadísticas de resumen u otros datos tabulares junto a tus gráficos.
Para crear una tabla utilizando Matplotlib, podemos utilizar la función table. Aquí tienes un ejemplo de cómo crear una tabla a partir de un dataframe de Pandas:
# Crear un dataframe de Pandas
data = {'Nombre': ['Alice', 'Bob', 'Charlie', 'David'],
Aquí está el archivo traducido al español:
'Edad': [25, 30, 35, 40],
'Salario': [50000, 60000, 70000, 80000]}
df = pd.DataFrame(data)
# Crear una tabla
fig, ax = plt.subplots()
ax.axis('off')
ax.axis('tight')
ax.table(cellText=df.values, colLabels=df.columns, loc='center')
fig.tight_layout()
plt.show()
Esto creará una tabla a partir del dataframe de pandas y la mostrará en un gráfico de Matplotlib.
Guardar y exportar gráficos
Una vez que hayas creado tu gráfico con Matplotlib, es posible que desees guardarlo en disco o exportarlo a un formato de archivo que se pueda compartir fácilmente o incluir en un informe. Para hacer esto, Matplotlib proporciona varios métodos para guardar y exportar gráficos.
Un método común para guardar gráficos es utilizar la función savefig. Esta función te permite especificar el formato de archivo, como PNG o PDF, y la resolución del gráfico. Aquí tienes un ejemplo de cómo usar la función savefig:
# Crear un gráfico
plt.plot([1, 2, 3, 4])
plt.ylabel('algunos números')
# Guardar el gráfico en un archivo
plt.savefig('mi_grafico.png', dpi=300)
Esto guardará el gráfico como un archivo PNG con una resolución de 300 puntos por pulgada (dpi).
Otro método para exportar gráficos es copiarlos al portapapeles. Matplotlib proporciona una función llamada matplotlib.pyplot.savefig que puede guardar la figura actual en un archivo o en el portapapeles del sistema. Aquí tienes un ejemplo de cómo usar la función savefig para copiar un gráfico al portapapeles:
# Crear un gráfico
plt.plot([1, 2, 3, 4])
plt.ylabel('algunos números')
# Copiar el gráfico al portapapeles
plt.savefig('portapapeles', bbox_inches='tight', pad_inches=0)
Esto copiará el gráfico al portapapeles, que luego se puede pegar en otra aplicación.
Usa PyGWalker como una alternativa de código abierto a Matplotlib
Si deseas visualizar tus datos dentro de Python Pandas, hay un paquete de análisis de datos y visualización de datos de código abierto que puede cubrirte: PyGWalker (opens in a new tab).
Para probar PyGWalker ahora mismo, puedes ejecutar PyGWalker en Google Colab (opens in a new tab), Binder (opens in a new tab) o Kaggle (opens in a new tab).
PyGWalker es de código abierto. Puedes consultar la página de GitHub de PyGWalker (opens in a new tab) y leer el artículo de Towards Data Science (opens in a new tab) al respecto.
Comienza a usar PyGWalker en Jupyter Notebook
PyGWalker puede simplificar tu flujo de trabajo de análisis de datos y visualización de datos en Jupyter Notebook. Al proporcionar una interfaz ligera y fácil de usar en lugar de analizar datos usando Python. Los pasos son sencillos:
Importa pygwalker y pandas en tu Jupyter Notebook para comenzar.
import pandas as pd
import pygwalker as pyg
Puedes usar pygwalker sin cambiar tu flujo de trabajo existente. Por ejemplo, puedes llamar a Graphic Walker con el dataframe cargado de esta manera:
df = pd.read_csv('./bike_sharing_dc.csv', parse_dates=['date'])
gwalker = pyg.walk(df)
Puedes crear fácilmente estos tipos de gráficos con tu dataframe de pandas sin una interfaz gráfica:
Gráfico de barras (opens in a new tab) | Gráfico de líneas | Gráfico de áreas (opens in a new tab) |
---|---|---|
Rastro | Gráfico de dispersión (opens in a new tab) | Círculo |
Gráfico de marcas de tiempo | Rectángulo | Diagrama de arco |
Diagrama de caja (opens in a new tab) | Mapa de calor (opens in a new tab) |
Puedes explorar nuestra Galería de visualización de datos para más ejemplos.
Cambiar el tamaño de un gráfico con PyGWalker
Puedes cambiar fácilmente el tamaño de un gráfico con el cursor del mouse.
Cambiar el tipo de gráfico
Un gráfico de líneas puede mostrar mejor las tendencias de los números de usuarios registrados que un gráfico de barras. Para cambiar el tipo de gráfico existente a un gráfico de líneas, haz clic en la opción Tipos de Marca en la barra de herramientas y elige Linea.
Crear una vista de concatenación
Es posible que desees comparar las diferencias entre los usuarios registrados
y casuales
. Simplemente agrega más medidas a las filas/columnas y compáralas.
No olvides echar un vistazo a una herramienta de análisis de datos automatizada y potenciada por IA más avanzada: RATH (opens in a new tab). RATH también es de código abierto y ha alojado su código fuente en GitHub (opens in a new tab).
Conclusión
En conclusión, Matplotlib es una poderosa herramienta de visualización de datos que se puede usar para crear gráficos impresionantes a partir de los dataframes de pandas. En este artículo, cubrimos los conceptos básicos de Matplotlib y PyGWalker para trazar, incluyendo cómo crear gráficos básicos y avanzados, personalizar gráficos, guardar gráficos en disco y crear tablas a partir de dataframes. Al utilizar Matplotlib y PyGWalker, los científicos de datos pueden mejorar sus habilidades de visualización de datos y obtener información de sus datos. Recuerda seguir practicando y explorando las diversas características de Matplotlib y PyGWalker para aprovechar al máximo tus datos.