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.

    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:

    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.

    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:

    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.

    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.

    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.

    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.

    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.

    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:

    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.

    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 鈥嬧媝roporcional a la funci贸n Freedom. Cuanto mayor sea el factor de libertad, mayores ser谩n los puntos:

    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.

    Etiquetas:

    Deja una respuesta

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