Ordenar diagrama de caja por media con Seaborn en Python

Seaborn es una increíble biblioteca de visualización para el trazado de gráficos estadísticos en Python. Proporciona hermosos estilos predeterminados y paletas de colores para hacer que los gráficos estadísticos sean más atractivos. Está construido en la parte superior de la biblioteca matplotlib y también está estrechamente integrado a las estructuras de datos de pandas .
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. Captura el resumen de los datos de manera eficiente con un simple cuadro y bigotes y nos permite comparar fácilmente entre grupos. Boxplot resume los datos de muestra utilizando los percentiles 25, 50 y 75. Estos percentiles también se conocen como el cuartil inferior, la mediana y el cuartil superior.
 

A veces, queremos ordenar los diagramas de caja según nuestras necesidades. Hay muchas maneras de ordenar un diagrama de caja que son:

  • Orden de diagrama de caja manualmente
  • Clasificación de diagrama de caja usando la media

En este artículo, discutiremos cómo ordenar un diagrama de caja usando la media.

¿Qué tipo de diagrama de caja usando la media?

Cuando tenemos varios grupos, se sugiere usar la clasificación por media o mediana manualmente, ya que será difícil ordenar.

Enfoque paso a paso:

  • Importación de bibliotecas

Python3

# import required modules
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
  • Crear conjunto de datos

Python3

# creating dataset
df = pd.DataFrame({
    'Ice-cream': np.random.normal(57, 5, 100),
    'Chocolate': np.random.normal(73, 5, 100),
    'cupcake': np.random.normal(68, 8, 100),
    'jamroll': np.random.normal(37, 10, 100),
    'cake': np.random.normal(76, 5, 100),
 
})
df.head()

Producción:

  • Trace los datos antes de ordenar el diagrama de caja.

Python3

# plot th data into boxplot
 
sns.boxplot(data=df)
 
# Label x-axis
plt.xlabel('Desserts')
 
# labels y-axis
plt.ylabel('preference of people')

Producción:

  • Ahora ordene los datos primero y obtenga los índices ordenados, ya que tenemos que ordenar el diagrama de caja usando la media, por lo que aplicaremos la función mean() y sort_values ​​a los datos.

Python3

# This will give the indices of the sorted
# values into the ascending order the default
# value in sort_values is ascending = True
index_sort = df.mean().sort_values().index
index_sort

Producción:
 

  • Usando el índice ordenado podemos ordenar el marco de datos que creamos.

Python3

# now applying the sorted
# indices to the data
df_sorted = df[index_sort]

Así que hemos ordenado los datos, tracemos el diagrama de caja de los datos.

Python3

# plotting the boxplot for the data
sns.boxplot(data = df_sorted)
 
# Label x-axis
plt.xlabel('Desserts')
 
# labels y-axis
plt.ylabel('preference of people')

Producción:

Si uno quiere ordenar en orden descendente, use la siguiente sintaxis: 

index_sort = df.mean().sort_values(ascending=False).index

A continuación se muestra el programa completo basado en el enfoque anterior:

Python3

# import required modules
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
 
 
# creating dataset
df = pd.DataFrame({
    'Ice-cream': np.random.normal(57, 5, 100),
    'Chocolate': np.random.normal(73, 5, 100),
    'cupcake': np.random.normal(68, 8, 100),
    'jamroll': np.random.normal(37, 10, 100),
    'cake': np.random.normal(76, 5, 100),
 
})
 
 
# sort on the basis of mean
index_sort = df.mean().sort_values().index
 
# now applying the sorted indices to the data
df_sorted = df[index_sort]
 
 
# plotting the boxplot for the data
sns.boxplot(data = df_sorted)
 
# Label x-axis
plt.xlabel('Desserts')
 
# labels y-axis
plt.ylabel('preference of people')

Producción:

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *