Matplotlib: Cambiar el tamaño del marcador del gráfico de dispersión

    Introducción

    Matplotlib es una de las bibliotecas de visualización de datos más utilizadas en Python. Gran parte de la popularidad de Matplotlib proviene de sus opciones de personalización: puede modificar casi cualquier elemento de su jerarquía de objetos.

    En este tutorial, veremos cómo cambiar el tamaño del marcador en un diagrama de dispersión de Matplotlib.

    Datos de importacion

    Usaremos el Felicidad mundial conjunto de datos y compare el puntaje de felicidad con diferentes características para ver qué influye en la felicidad percibida en el mundo:

    import pandas as pd
    
    df = pd.read_csv('worldHappiness2019.csv')
    

    Luego, podemos manipular fácilmente el tamaño de los marcadores utilizados para representar entradas en este conjunto de datos.

    Cambiar el tamaño del marcador en el gráfico de dispersión de Matplotlib

    Comencemos trazando el puntaje de generosidad contra el PIB per cápita:

    import matplotlib.pyplot as plt
    import pandas as pd
    
    df = pd.read_csv('worldHappiness2019.csv')
    
    fig, ax = plt.subplots(figsize=(10, 6))
    ax.scatter(x = df['GDP per capita'], y = df['Generosity'])
    plt.xlabel("GDP per Capita")
    plt.ylabel("Generosity Score")
    
    plt.show()
    

    Esto resulta en:

    Ahora, digamos que nos gustaría aumentar el tamaño de cada marcador, en función de la felicidad percibida de los habitantes de ese país. El puntaje de felicidad es una lista, que viene directamente del df, por lo que esto también puede funcionar con otras listas.

    Para cambiar el tamaño de los marcadores, usamos el s argumento, por el scatter() función. Esta sera la markersize argumento para el plot() función:

    import matplotlib.pyplot as plt
    import pandas as pd
    
    df = pd.read_csv('worldHappiness2019.csv')
    
    fig, ax = plt.subplots(figsize=(10, 6))
    ax.scatter(x = df['GDP per capita'], y = df['Generosity'], s = df['Score']*10)
    plt.xlabel("GDP per Capita")
    plt.ylabel("Generosity Score")
    
    plt.show()
    

    También hemos multiplicado el valor de cada elemento de la lista por un número arbitrario de 25, porque están clasificados de 0..1. Esto producirá marcadores realmente pequeños si los usamos en sus valores originales.

    Esto ahora resulta en:

    O mejor aún, en lugar de multiplicar todo crudamente por 25, dado que los valores son similares de todos modos, podemos hacer algo como esto:

    import matplotlib.pyplot as plt
    import pandas as pd
    
    df = pd.read_csv('worldHappiness2019.csv')
    
    size = df['Score'].to_numpy()
    s = [3*s**2 for s in size]
    
    fig, ax = plt.subplots(figsize=(10, 6))
    ax.scatter(x = df['GDP per capita'], y = df['Generosity'], s = s)
    plt.xlabel("GDP per Capita")
    plt.ylabel("Generosity Score")
    
    plt.show()
    

    Es importante tener el s enumerar la misma longitud que x y y, ya que cada valor de s ahora se les aplica. Si la lista es más corta o más larga, el código se romperá.

    Aquí, hemos extraído los valores del Score columna, escalarlos y aplicar el tamaño de nuevo al diagrama de dispersión:

    Establecer el tamaño del marcador global en el gráfico de dispersión de Matplotlib

    Si desea separar el tamaño del marcador de alguna variable, y simplemente desea establecer un tamaño global estándar de marcadores en el diagrama de dispersión, simplemente puede pasar un valor único para s:

    import matplotlib.pyplot as plt
    import pandas as pd
    
    df = pd.read_csv('worldHappiness2019.csv')
    
    fig, ax = plt.subplots(figsize=(10, 6))
    ax.scatter(x = df['GDP per capita'], y = df['Generosity'], s = 100)
    plt.xlabel("GDP per Capita")
    plt.ylabel("Generosity Score")
    
    plt.show()
    

    Esto ahora resulta en:

    Conclusión

    En este tutorial, hemos repasado cómo cambiar el tamaño del marcador en un gráfico de dispersión de 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 *