C贸mo cambiar el fondo de la trama en Matplotlib

    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.

    .

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *