Cómo cambiar el fondo de la trama en Matplotlib

En este tutorial, repasaremos varios ejemplos de cómo cambiar el fondo de un gráfico (fondo de figura y fondo de ejes) en Matplotlib usando Python.

Introducción

Matplotlib es una de las bibliotecas de visualización de datos más utilizadas en Python. Desde visualizaciones simples a 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

Importemos primero las bibliotecas requeridas. Obviamente necesitaremos Matplotlib, y usaremos Pandas para leer los datos:

1
2
import matplotlib.pyplot as plt
import pandas as pd

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

1
2
weather_data = pd.read_csv("seattleWeather.csv")
print(weather_data.head())
1
2
3
4
5
6
         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

Creando una Parcela

Now, let's create a simple Diagrama de dispersión de Matplotlib, with a few different variables we want to visualize:

1
2
3
PRCP = weather_data['PRCP']
TMAX = weather_data['TMAX']
TMIN = weather_data['TMIN']

Ahora, construiremos un gráfico de dispersión entre la temperatura mínima y la precipitación y lo mostraremos usando PyPlot de Matplotlib:

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

matplotlib scatter plot

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

Cambiar el fondo del gráfico en Matplotlib

Ahora, avancemos 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 blanco. O bien, 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 la función set(), pasando el argumento face y su nuevo valor, o a través de la función dedicada set_facecolor():

1
2
3
4
5
6
7
ax = plt.axes()
ax.set_facecolor("orange")
# OR
ax.set(facecolor = "orange")

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

change axes background color matplotlib

Cualquiera de estos enfoques produce el mismo resultado, ya que ambos requieren la misma función debajo del 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 argumento set_alpha() al crear la figura. Vamos a crear una figura y un objeto de ejes. Por supuesto, también puede usar la función set() y pasar el atributo alpha en su lugar.

El color de toda la figura será azul e inicialmente estableceremos el ‘alfa’ del objeto de los ejes en ‘1.0’, lo que significa que es completamente opaco. Coloreamos el objeto de los ejes de naranja, dándonos un fondo naranja dentro de la figura azul:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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()

change figure background matplotlib

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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()

change axes background matplotlib within figure

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

Agregar imagen al fondo del gráfico en Matplotlib

Si desea utilizar una imagen como fondo para un gráfico, puede hacerlo utilizando la función imread() de PyPlot. 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 a la función imshow(), especificando qué región de la imagen debe mostrarse. Cuando se combina con subgráficos, se puede insertar otro gráfico encima de la imagen.

Usemos una imagen de lluvia como fondo para nuestra trama:

1
2
3
4
5
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()

adding image to background matplotlib

El argumento extensión toma argumentos adicionales en este orden: horizontal_min, horizontal_max, vertical_min, vertical_max).

Aquí, leímos la imagen, la recortamos y la mostramos en los ejes usando imshow(). Luego, trazamos el gráfico de dispersión con un color diferente y mostramos el gráfico.

Conclusión

En este tutorial, hemos repasado varias formas de cambiar el fondo de un gráfico utilizando Python y Matplotlib.

Si está interesado en Visualización de datos y no sabe por dónde empezar, asegúrese de consultar nuestro paquete de libros en [Visualización de datos en Python](https://gum.co/data-visualization -en-paquete-de-libros-de-python):

Visualización de datos en Python Vuélvase peligroso con la visualización de datos ✅ Garantía de devolución de dinero de 30 días sin preguntas ✅ Principiante a Avanzado ✅ Actualizado periódicamente de forma gratuita (última actualización en abril de 2021) ✅ Actualizado con recursos y guías adicionales

Visualización de datos en Python con Matplotlib y Pandas es un libro diseñado para llevar a los principiantes absolutos a Pandas y Matplotlib, con conocimientos básicos de Python, y permitirles construir una base sólida para el trabajo avanzado con estas bibliotecas, desde gráficos simples. a gráficos 3D animados con botones interactivos.

Sirve como una guía detallada que le enseñará todo lo que necesita saber sobre Pandas y Matplotlib, incluido cómo construir tipos de gráficos que no están integrados en la propia biblioteca.

Visualización de datos en Python, un libro para desarrolladores principiantes e intermedios de Python, lo guía a través de la manipulación de datos simple con Pandas, cubre bibliotecas de trazado centrales como Matplotlib y Seaborn, y le muestra cómo aprovechar las bibliotecas declarativas y experimentales. como Altair. Más específicamente, a lo largo de 11 capítulos, este libro cubre 9 bibliotecas de Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas y VisPy.

Sirve como una guía práctica única para la visualización de datos, en una plétora de herramientas que podría usar en su carrera.