Cómo cambiar el fondo de la trama en Matplotlib

C

Introducción

Matplotlib es una de las bibliotecas de visualización de datos más utilizadas en Python. Desde visualizaciones simples hasta complejas, es la biblioteca de referencia para la mayoría.

En este tutorial, veremos cómo cambiar el fondo de un gráfico en Matplotlib.

Importación de datos y bibliotecas

Primero importemos las bibliotecas necesarias. Obviamente, necesitaremos Matplotlib y usaremos Pandas para leer los datos:

import matplotlib.pyplot as plt
import pandas as pd

Específicamente, usaremos el Conjunto de datos meteorológicos de Seattle:

weather_data = pd.read_csv("seattleWeather.csv")
print(weather_data.head())
         DATE  PRCP  TMAX  TMIN  RAIN
0  1948-01-01  0.47    51    42  True
1  1948-01-02  0.59    45    36  True
2  1948-01-03  0.42    45    35  True
3  1948-01-04  0.31    45    34  True
4  1948-01-05  0.17    45    32  True

Crear una parcela

Ahora, creemos un diagrama de dispersión de Matplotlib simple, con algunas variables diferentes que queremos visualizar:

PRCP = weather_data['PRCP']
TMAX = weather_data['TMAX']
TMIN = weather_data['TMIN']

Ahora, construiremos un diagrama de dispersión entre la temperatura mínima y la precipitación y show() usando PyPlot de Matplotlib:

plt.scatter(TMIN, PRCP)
plt.show()

El gráfico que hemos producido es interpretable, pero parece un poco sencillo. Intentemos personalizarlo. Queremos personalizar el fondo de nuestra trama usando un par de métodos diferentes.

Cambiar el fondo de la trama en Matplotlib

Ahora, sigamos adelante y cambiemos el fondo de esta trama. Podemos hacer esto con dos enfoques diferentes. Podemos cambiar el color de la cara, que actualmente está configurado en white. O podemos ingresar una imagen usando imshow().

Cambiar el fondo de los ejes en Matplotlib

Primero cambiemos el color de la cara. Esto se puede hacer con el set() función, pasando en el face argumento y su nuevo valor, oa través del dedicado set_facecolor() función:

ax = plt.axes()
ax.set_facecolor("orange")
# OR
ax.set(facecolor = "orange")

plt.scatter(TMIN, PRCP)
plt.show()

Cualquiera de estos enfoques produce el mismo resultado, ya que ambos invocan la misma función bajo el capó.

Cambiar el fondo de la figura en Matplotlib

Si desea establecer el fondo de la figura y necesita que los ejes sean transparentes, puede hacerlo con el set_alpha() argumento al crear la figura. Creemos una figura y un objeto de ejes. Por supuesto, también puede utilizar el set() función, y pasar la alpha atributo en su lugar.

El color de toda la figura será azul e inicialmente estableceremos el alpha de los ejes objeto a 1.0, que significa completamente opaco. Coloreamos el objeto de los ejes de naranja, dándonos un fondo naranja dentro de la figura azul:

fig = plt.figure()
fig.patch.set_facecolor('blue')
fig.patch.set_alpha(0.6)

ax = fig.add_subplot(111)
ax.patch.set_facecolor('orange')
ax.patch.set_alpha(1.0)

plt.scatter(TMIN, PRCP)
plt.show()

Ahora veamos qué sucede cuando ajustamos el alfa de la subparcela de ejes a 0.0:

fig = plt.figure()
fig.patch.set_facecolor('blue')
fig.patch.set_alpha(0.6)

ax = fig.add_subplot(111)
ax.patch.set_facecolor('orange')
ax.patch.set_alpha(0.0)

plt.scatter(TMIN, PRCP)
plt.show()

Observe que el fondo de la trama en sí es transparente ahora.

Agregar imagen para trazar el fondo en Matplotlib

Si desea utilizar una imagen como fondo para un gráfico, puede hacerlo utilizando PyPlot’s imread() función. Esta función carga una imagen en Matplotlib, que se puede mostrar con la función imshow().

Para trazar sobre la imagen, se debe especificar la extensión de la imagen. De forma predeterminada, Matplotlib utiliza la esquina superior izquierda de la imagen como origen de la imagen. Podemos dar una lista de puntos al imshow() función, especificando qué región de la imagen debe mostrarse. Cuando se combina con subtramas, se puede insertar otra trama en la parte superior de la imagen.

Usemos una imagen de lluvia como fondo para nuestra trama:

img = plt.imread("rain.jpg")
fig, ax = plt.subplots()
ax.imshow(img, extent=[-5, 80, -5, 30])
ax.scatter(TMIN, PRCP, color="#ebb734")
plt.show()

los extent argumento toma argumentos adicionales en este orden: horizontal_min, horizontal_max, vertical_min, vertical_max).

Aquí, leemos la imagen, la recortamos y la mostramos en los ejes usando imshow(). Luego, trazamos el diagrama de dispersión con un color diferente y mostramos el diagrama.

Conclusión

En este tutorial, hemos repasado varias formas de cambiar el fondo de una trama usando Python y Matplotlib.

Si está interesado en la visualización de datos y no sabe por dónde empezar, asegúrese de consultar nuestro libro sobre Visualización de datos en Python.

Data Visualization in Python, un libro para desarrolladores de Python principiantes e intermedios, lo guiará a través de la manipulación simple de datos con Pandas, cubrirá bibliotecas de trazado centrales como Matplotlib y Seaborn, y le mostrará cómo aprovechar las bibliotecas declarativas y experimentales como Altair.

Visualización de datos en Python

¡Comprenda mejor sus datos con visualizaciones! Con 340 páginas, aprenderá los entresijos de la visualización de datos en Python con bibliotecas populares como Matplotlib, Seaborn, Bokeh y más.

.

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad