Trazado de gráficos usando Seaborn | Python

Este artículo le presentará la creación de gráficos en Python con Seaborn, que es la biblioteca de visualización estadística más popular en Python.

Instalación: La forma más fácil de instalar seaborn es usar pip. Escriba el siguiente comando en la terminal:  

pip install seaborn

O bien, puede descargarlo desde aquí e instalarlo manualmente.  

Trazado de diagramas de dispersión categóricos con Seaborn

diagrama de franjas

Python3

# Python program to illustrate
# Plotting categorical scatter 
# plots with Seaborn
  
# importing the required module
import matplotlib.pyplot as plt
import seaborn as sns
  
# x axis values
x =['sun', 'mon', 'fri', 'sat', 'tue', 'wed', 'thu']
  
# y axis values
y =[5, 6.7, 4, 6, 2, 4.9, 1.8]
  
# plotting strip plot with seaborn
ax = sns.stripplot(x, y);
  
# giving labels to x-axis and y-axis
ax.set(xlabel ='Days', ylabel ='Amount_spend')
  
# giving title to the plot
plt.title('My first graph');
  
# function to show plot
plt.show()

Producción:

Explicación: Este es el único tipo de diagrama de dispersión de datos categóricos con la ayuda de seaborn.  

  • Los datos categóricos se representan en el eje x y los valores les corresponden representados a través del eje y.
  • La función .striplot() se usa para definir el tipo de trama y trazarlas en el lienzo usando.
  • La función .set() se usa para establecer las etiquetas del eje x y el eje y.
  • La función .title() se usa para dar un título al gráfico.
  • Para ver la trama usamos la función .show() .

Stripplot usando un conjunto de datos incorporado dado en seaborn: 

Python3

# Python program to illustrate
# Stripplot using inbuilt data-set
# given in seaborn
  
# importing the required module
import matplotlib.pyplot as plt
import seaborn as sns
  
# use to set style of background of plot
sns.set(style="whitegrid")
  
# loading data-set
iris = sns.load_dataset('iris')
  
# plotting strip plot with seaborn
# deciding the attributes of dataset on
# which plot should be made
ax = sns.stripplot(x='species', y='sepal_length', data=iris)
  
# giving title to the plot
plt.title('Graph')
  
# function to show plot
plt.show()

Producción: 

Explicación:

  • iris es el conjunto de datos ya presente en el módulo seaborn para su uso.
  • Usamos la función .load_dataset() para cargar los datos. También podemos cargar cualquier otro archivo dando la ruta y el nombre del archivo en el argumento.
  • La función .set(style=”whitegrid”) aquí también se usa para definir el fondo de la trama. Podemos usar “darkgrid” 
    en lugar de whitegrid si queremos un fondo de color oscuro.
  • En la función .stripplot() tenemos que definir qué atributo del conjunto de datos debe estar en el eje x y qué atributo del conjunto de datos debe estar en el eje y. data = iris significa que los atributos que definimos anteriormente deben tomarse de los datos proporcionados.
  • También podemos dibujar este gráfico con matplotlib, pero el problema con matplotlib son sus parámetros predeterminados. La razón por la que Seaborn es tan bueno con DataFrames es, por ejemplo, que las etiquetas de DataFrames se propagan automáticamente a gráficos u otras estructuras de datos, como puede ver en la figura anterior . -axis, eso no es posible con matplotlib. Tenemos que definir explícitamente las etiquetas del eje x y el eje y.

diagrama de enjambre 

Python3

# Python program to illustrate
# plotting using Swarmplot
  
# importing the required module
import matplotlib.pyplot as plt
import seaborn as sns
  
# use to set style of background of plot
sns.set(style="whitegrid")
  
# loading data-set
iris = sns.load_dataset('iris')
  
# plotting strip plot with seaborn
# deciding the attributes of dataset on
# which plot should be made
ax = sns.swarmplot(x='species', y='sepal_length', data=iris)
  
# giving title to the plot
plt.title('Graph')
  
# function to show plot
plt.show()

Producción: 

Explicación: 
Esto es muy similar a stripplot pero la única diferencia es que no permite la superposición de marcadores. Provoca fluctuaciones en los marcadores del gráfico para que el gráfico se pueda leer fácilmente sin pérdida de información, como se ve en el gráfico anterior. 
 

  • Usamos la función .swarmplot() para trazar el diagrama de enjambre.
  • Otra diferencia que podemos notar en Seaborn y Matplotlib es que trabajar con DataFrames no funciona tan bien con Matplotlib, lo que puede ser molesto si hacemos un análisis exploratorio con Pandas. Y eso es exactamente lo que Seaborn hace fácilmente, las funciones de trazado operan en DataFrames y arrays que contienen un conjunto de datos completo.

Nota: Si queremos también podemos cambiar la representación de datos en un eje en particular. 

Ejemplo : 

Python3

# importing the required module
import matplotlib.pyplot as plt
import seaborn as sns
  
# use to set style of background of plot
sns.set(style="whitegrid")
  
# loading data-set
iris = sns.load_dataset('iris')
  
# plotting strip plot with seaborn
# deciding the attributes of dataset on 
# which plot should be made
ax = sns.swarmplot(x='sepal_length', y='species', data=iris)
  
  
# giving title to the plot
plt.title('Graph')
  
# function to show plot
plt.show()

Producción: 

Lo mismo se puede hacer en striplot. Por último, podemos decir que Seaborn es una versión extendida de matplotlib que intenta hacer fácil un conjunto bien definido de cosas difíciles.

gráfico de barras

Un gráfico de barras se usa básicamente para agregar los datos categóricos de acuerdo con algunos métodos y, de forma predeterminada, es la media. También puede entenderse como una visualización del grupo por acción. Para usar este gráfico, elegimos una columna categórica para el eje x y una columna numérica para el eje y, y vemos que crea un gráfico tomando una media por columna categórica.

Sintaxis:

barplot([x, y, hue, data, order, hue_order, …])

Python3

# import the seaborn library 
import seaborn as sns 
  
# reading the dataset 
df = sns.load_dataset('tips') 
  
# change the estimator from mean to
# standard deviation 
sns.barplot(x ='sex', y ='total_bill', data = df,  
            palette ='plasma')

Producción:

Explicación:
si observamos el diagrama, podemos decir que el total_bill promedio para el hombre es mayor que el de la mujer.

  • Paleta se utiliza para establecer el color de la trama
  • El estimador se utiliza como una función estadística para la estimación dentro de cada contenedor categórico.

conteo

Un gráfico de recuento básicamente cuenta las categorías y devuelve un recuento de sus ocurrencias. Es una de las tramas más simples proporcionadas por la biblioteca marina.

Sintaxis:

countplot([x, y, hue, data, order, …])

Python3

# import the seaborn library 
import seaborn as sns 
  
# reading the dataset 
df = sns.load_dataset('tips') 
  
sns.countplot(x ='sex', data = df) 

Producción:

Explicación:

Mirando la gráfica, podemos decir que el número de machos es mayor que el número de hembras en el conjunto de datos. Como solo devuelve el recuento basado en una columna categórica, necesitamos especificar solo el parámetro x.

diagrama de caja

Box Plot es la representación visual de los grupos de representación de datos numéricos a través de sus cuartiles. Boxplot también se usa para detectar el valor atípico en el conjunto de datos.

Sintaxis:

boxplot([x, y, hue, data, order, hue_order, …])

Python3

# import the seaborn library
import seaborn as sns
  
# reading the dataset
df = sns.load_dataset('tips')
  
sns.boxplot(x='day', y='total_bill', data=df, hue='smoker')

Producción:

Explicación:

x toma la columna categórica e y es una columna numérica. Por lo tanto, podemos ver la factura total gastada cada día”. El parámetro hue” se usa para agregar una separación categórica adicional. Al observar el gráfico podemos decir que las personas que no fuman tuvieron una factura más alta el viernes en comparación con las personas que fumaron.

Trama de violín

Es similar al diagrama de caja, excepto que proporciona una visualización superior y más avanzada y utiliza la estimación de la densidad del núcleo para ofrecer una mejor descripción de la distribución de datos.

Sintaxis:

violinplot([x, y, hue, data, order, …])

Python3

# import the seaborn library
import seaborn as sns
  
# reading the dataset
df = sns.load_dataset('tips')
sns.violinplot(x='day', y='total_bill', data=df,
               hue='sex', split=True)

Producción:

Explicación:

  • El tono se usa para separar aún más los datos usando la categoría de sexo.
  • establecer split=True dibujará la mitad de un violín para cada nivel. Esto puede facilitar la comparación directa de las distribuciones.

diagrama de franjas

Básicamente crea un diagrama de dispersión basado en la categoría.

Sintaxis:

stripplot([x, y, hue, data, order, …])

Python3

# import the seaborn library
import seaborn as sns
  
# reading the dataset
df = sns.load_dataset('tips')
sns.stripplot(x='day', y='total_bill', data=df,
              jitter=True, hue='smoker', dodge=True)

Producción:

Explicación:

  • Un problema con el gráfico de franjas es que realmente no se puede saber qué puntos están apilados uno encima del otro y, por lo tanto, usamos el parámetro de fluctuación para agregar algo de ruido aleatorio.
  • El parámetro jitter se usa para agregar una cantidad de jitter (solo a lo largo del eje categórico) que puede ser útil cuando tiene muchos puntos y se superponen para que sea más fácil ver la distribución.
  • El tono se utiliza para proporcionar una separación categórica adicional.
  • La configuración split=True se utiliza para dibujar gráficos de franjas independientes en función de la categoría especificada por el parámetro de tono.

Publicación traducida automáticamente

Artículo escrito por saloni1297 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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