Diagrama de dispersión de Seaborn – Tutorial y ejemplos

     

    Introducción

    Seaborn es una de las bibliotecas de visualización de datos más utilizadas en Python, como una extensión de Matplotlib. Ofrece una API simple, intuitiva pero altamente personalizable para la visualización de datos.

    Te puede interesar:Literales de cadena / plantilla ES6 en Node.js

    En este tutorial, veremos cómo trazar un diagrama de dispersión en Seaborn. Cubriremos gráficos de dispersión simples, múltiples gráficos de dispersión con FacetGrid y gráficos de dispersión 3D.

    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:

    Te puede interesar:Uso de enlaces asíncronos para el manejo del contexto de solicitudes en Node.js
    import pandas as pd
    
    df = pd.read_csv('worldHappiness2016.csv')
    

    Trazar un diagrama de dispersión en Seaborn

    Ahora, con el conjunto de datos cargado, importemos PyPlot, que usaremos para mostrar el gráfico, así como Seaborn. Trazaremos el puntaje de felicidad contra la economía del país (PIB per cápita):

    import matplotlib.pyplot as plt
    import seaborn as sns
    import pandas as pd
    
    df = pd.read_csv('worldHappiness2016.csv')
    
    sns.scatterplot(data = df, x = "Economy (GDP per Capita)", y = "Happiness Score")
    
    plt.show()
    

    Seaborn hace que sea realmente fácil trazar gráficos básicos como diagramas de dispersión. No necesitamos jugar con el Figure objeto, Axes instancias o configurar cualquier cosa, aunque podemos si queremos. Aquí, hemos proporcionado el df como el data argumento, y proporcionó las características que queremos visualizar como el x y y argumentos.

    Te puede interesar:Manejo de CORS con Node.js

    Estos deben coincidir con los datos presentes en el conjunto de datos y las etiquetas predeterminadas serán sus nombres. Personalizaremos esto en una sección posterior.

    Ahora, si ejecutamos este código, nos saludan con:

    Te puede interesar:Trabajar con imágenes en Node.js – GraphicsMagick e ImageMagick

    Aquí, hay una fuerte correlación positiva entre la economía (PIB per cápita) y la felicidad percibida de los habitantes de un país / región.

    Trazar múltiples diagramas de dispersión en Seaborn con FacetGrid

    Si desea comparar más de una variable con otra, como la esperanza de vida promedio, así como el puntaje de felicidad contra la economía, o cualquier variación de esto, no es necesario crear una gráfica 3D para esto.

    Te puede interesar:Escribir en archivos usando el comando cat en Linux

    Si bien existen gráficos 2D que visualizan correlaciones entre más de dos variables, algunos de ellos no son completamente amigables para principiantes.

    Seaborn nos permite construir un FacetGrid objeto, que podemos usar para facetar los datos y construir múltiples gráficos relacionados, uno al lado del otro.

    Te puede interesar:node: Mostrar archivos en un directorio

    Echemos un vistazo a cómo hacer eso:

    import matplotlib.pyplot as plt
    import pandas as pd
    import seaborn as sns
    
    df = pd.read_csv('worldHappiness2016.csv')
    
    grid = sns.FacetGrid(df, col = "Region", hue = "Region", col_wrap=5)
    grid.map(sns.scatterplot, "Economy (GDP per Capita)", "Health (Life Expectancy)")
    
    grid.add_legend()
    
    plt.show()
    

    Aquí, hemos creado un FacetGrid, pasando nuestros datos (df) a ella. Especificando el col argumento como "Region", le hemos dicho a Seaborn que nos gustaría facetar los datos en regiones y trazar un diagrama de dispersión para cada región del conjunto de datos.

    Te puede interesar:Cambiar la frecuencia de ticks en Matplotlib

    También hemos asignado el hue depende de la región, por lo que cada región tiene un color diferente. Finalmente, hemos configurado el col_wrap argumento para 5 para que toda la figura no sea demasiado ancha, se divide en cada 5 columnas en una nueva fila.

    A esto grid objeto, nosotros map() nuestros argumentos. Específicamente, especificamos un sns.scatterplot como el tipo de trama que nos gustaría, así como el x y y variables que queremos trazar en estos diagramas de dispersión.

    Te puede interesar:Rotar etiquetas de eje en Matplotlib

    Esto da como resultado 10 diagramas de dispersión diferentes, cada uno con el x y y datos, separados por región.

    También agregamos una leyenda al final, para ayudar a identificar los colores.

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

    Trazar un diagrama de dispersión 3D en Seaborn

    Seaborn no viene con ninguna funcionalidad 3D incorporada, desafortunadamente. Es una extensión de Matplotlib y se basa en él para el trabajo pesado en 3D. Sin embargo, podemos diseñar la trama 3D Matplotlib, usando Seaborn.

    Establezcamos el estilo usando Seaborn y visualicemos un diagrama de dispersión en 3D entre felicidad, economía y salud:

    Te puede interesar:Gráfico de histograma de Matplotlib: tutorial y ejemplos
    import matplotlib.pyplot as plt
    import pandas as pd
    import seaborn as sns
    from mpl_toolkits.mplot3d import Axes3D
    
    df = pd.read_csv('2016.csv')
    sns.set(style = "darkgrid")
    
    fig = plt.figure()
    ax = fig.add_subplot(111, projection = '3d')
    
    x = df['Happiness Score']
    y = df['Economy (GDP per Capita)']
    z = df['Health (Life Expectancy)']
    
    ax.set_xlabel("Happiness")
    ax.set_ylabel("Economy")
    ax.set_zlabel("Health")
    
    ax.scatter(x, y, z)
    
    plt.show()
    

    La ejecución de este código da como resultado una visualización 3D interactiva que podemos desplazar e inspeccionar en un espacio tridimensional, con el estilo de un gráfico Seaborn:

    Personalización de gráficos de dispersión en Seaborn

    Con Seaborn, es fácil personalizar varios elementos de los gráficos que crea. Por ejemplo, puede configurar el hue y size de cada marcador en un diagrama de dispersión.

    Te puede interesar:Distribución de Seaborn / Gráfico de histograma: tutorial y ejemplos

    Cambiemos algunas de las opciones y veamos cómo se ve la trama cuando se modifica:

    import matplotlib.pyplot as plt
    import seaborn as sns
    import pandas as pd
    
    df = pd.read_csv('2016.csv')
    
    sns.scatterplot(data = df, x = "Economy (GDP per Capita)", y = "Happiness Score", hue = "Region", size = "Freedom")
    
    plt.show()
    

    Aquí, hemos configurado el hue a Region lo que significa que los datos de diferentes regiones tendrán diferentes colores. Además, hemos establecido el size sea ​​proporcional a la función Freedom. Cuanto mayor sea el factor de libertad, mayores serán los puntos:

    Te puede interesar:Gráfico de barras de Matplotlib – Tutorial y ejemplos

    O puede establecer un tamaño fijo para todos los marcadores, así como un color:

    sns.scatterplot(data = df, x = "Economy (GDP per Capita)", y = "Happiness Score", hue = "red", size = 5)
    

    Conclusión

    En este tutorial, hemos repasado varias formas de trazar un diagrama de dispersión usando Seaborn y Python.

    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.

    Rate this post

    Etiquetas: