Distribuci贸n de Seaborn / Gr谩fico de histograma: 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 una gr谩fica de distribuci贸n en Seaborn. Cubriremos c贸mo trazar un diagrama de distribuci贸n con Seaborn, c贸mo cambiar los tama帽os de contenedor de un diagrama de distribuci贸n, as铆 como trazar diagramas de estimaci贸n de densidad del n煤cleo sobre ellos y mostrar datos de distribuci贸n en lugar de datos de recuento.

    Datos de importacion

    Usaremos el Programas de Netflix conjunto de datos y visualizar las distribuciones desde all铆.

    Importemos Pandas y carguemos en el conjunto de datos:

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

    驴C贸mo trazar una parcela de distribuci贸n con Seaborn?

    Seaborn tiene diferentes tipos de parcelas de distribuci贸n que es posible que desee utilizar.

    Estos tipos de gr谩ficos son: KDE Plots (kdeplot()) y gr谩ficos de histograma (histplot()). Ambos se pueden lograr a trav茅s del gen茅rico displot() funci贸n, oa trav茅s de sus respectivas funciones.

    Nota: Desde Seaborn 0.11, distplot() convirti贸 displot(). Si est谩 utilizando una versi贸n anterior, deber谩 utilizar tambi茅n la funci贸n anterior.

    Empecemos a trazar.

    Trazar histograma / diagrama de distribuci贸n (trazar) con Seaborn

    Sigamos adelante e importemos los m贸dulos necesarios y generemos un gr谩fico de histograma / distribuci贸n.

    Visualizaremos la distribuci贸n de la release_year funci贸n, para ver cu谩ndo Netflix fue m谩s activo con nuevas incorporaciones:

    import matplotlib.pyplot as plt
    import pandas as pd
    import numpy as np
    import seaborn as sns
    
    # Load the data
    df = pd.read_csv('netflix_titles.csv')
    # Extract feature we're interested in
    data = df['release_year']
    
    # Generate histogram/distribution plot
    sns.displot(data)
    
    plt.show()
    

    Ahora, si ejecutamos el c贸digo, seremos recibidos con un diagrama de histograma, que muestra el recuento de apariciones de estos release_year valores:

    Trazar parcela de distribuci贸n con informaci贸n de densidad con Seaborn

    Ahora, al igual que con Matplotlib, el enfoque de histograma predeterminado es contar el n煤mero de ocurrencias. En su lugar, puede visualizar la distribuci贸n de cada uno de estos release_years en porcentajes.

    Modifiquemos el displot() llamar para cambiar eso:

    # Extract feature we're interested in
    data = df['release_year']
    
    # Generate histogram/distribution plot
    sns.displot(data, stat="density")
    
    plt.show()
    

    Lo 煤nico que tenemos que cambiar es proporcionar la stat argumento, y hacerle saber que nos gustar铆a ver la densidad, en lugar de la 'count'.

    Ahora, en lugar del recuento que hemos visto antes, se nos presentar谩 la densidad de entradas:

    Cambiar el tama帽o del contenedor de parcela de distribuci贸n con Seaborn

    A veces, los tama帽os de contenedores autom谩ticos no nos funcionan muy bien. Son demasiado grandes o demasiado peque帽os. De forma predeterminada, el tama帽o se elige en funci贸n de la variaci贸n observada en los datos, pero esto a veces no puede ser diferente de lo que nos gustar铆a sacar a la luz.

    En nuestra trama, son un poco demasiado peque帽os y est谩n colocados de manera inc贸moda con espacios entre ellos. Podemos cambiar el tama帽o del contenedor configurando el binwidth para cada bandeja, o estableciendo el n煤mero de bins:

    data = df['release_year']
    
    sns.displot(data, binwidth = 3)
    
    plt.show()
    

    Esto har谩 que cada contenedor incluya datos en rangos de 3 a帽os:

    O podemos establecer un n煤mero fijo de bins:

    data = df['release_year']
    
    sns.displot(data, bins = 30)
    
    plt.show()
    

    Ahora, los datos se empaquetar谩n en 30 contenedores y, seg煤n el rango de su conjunto de datos, ser谩n muchos contenedores o una cantidad muy peque帽a:

    Otra excelente manera de deshacerse de las brechas inc贸modas es establecer el discrete argumento para True:

    data = df['release_year']
    
    sns.displot(data, discrete=True)
    
    plt.show()
    

    Esto resulta en:

    Trazar el diagrama de distribuci贸n con KDE

    Un gr谩fico com煤n para trazar junto con un histograma es el gr谩fico de estimaci贸n de densidad de kernel. Son suaves y no pierde ning煤n valor al capturar rangos de valores en contenedores. Puede establecer un valor de intervalo m谩s grande, superponer un gr谩fico de KDE sobre el histograma y tener toda la informaci贸n relevante en la pantalla.

    Afortunadamente, dado que esto era algo muy com煤n, Seaborn nos permite trazar un diagrama de KDE simplemente configurando el kde argumento para True:

    data = df['release_year']
    
    sns.displot(data, discrete = True, kde = True)
    
    plt.show()
    

    Esto ahora resulta en:

    Parcela Parcela de distribuci贸n conjunta con Seaborn

    A veces, es posible que desee visualizar varias funciones entre s铆 y sus distribuciones. Por ejemplo, es posible que queramos visualizar la distribuci贸n de las calificaciones del programa, as铆 como el a帽o de su adici贸n. Si busc谩ramos ver si Netflix comenz贸 a agregar m谩s contenido para ni帽os a lo largo de los a帽os, esta ser铆a una gran combinaci贸n para una trama conjunta.

    Hagamos un jointplot():

    df = pd.read_csv('netflix_titles.csv')
    df.dropna(inplace=True)
    
    sns.jointplot(x = "rating", y = "release_year", data = df)
    
    plt.show()
    

    Hemos eliminado los valores nulos aqu铆 ya que Seaborn tendr谩 problemas para convertirlos en valores utilizables.

    Aqu铆, hemos creado un gr谩fico de histograma para la funci贸n de clasificaci贸n, as铆 como un gr谩fico de histograma para la funci贸n release_year:

    Podemos ver que la mayor铆a de las entradas agregadas son TV-MA, sin embargo, tambi茅n hay muchas entradas de TV-14, por lo que hay una buena selecci贸n de programas para toda la familia.

    Conclusi贸n

    En este tutorial, hemos repasado varias formas de trazar una gr谩fica de distribuci贸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 *