Parcela de conteo marino

Salman Mehmood 15 febrero 2024
  1. Usa la función countplot() en Seaborn
  2. Diagrama de barras de Seaborn vs. Diagrama de conteo
Parcela de conteo marino

Este artículo analiza el gráfico de recuento de Seaborn y la diferencia entre el gráfico de recuento y el gráfico de barras. También veremos las opciones de Python disponibles para la función countplot() de Seaborn.

Usa la función countplot() en Seaborn

El countplot() es una forma de contar el número de observaciones que tiene por categoría y luego mostrar esa información en barras. Puede considerarlo un histograma, pero para datos categóricos, es un gráfico muy simple y muy útil, especialmente cuando se realizan análisis de datos exploratorios en Python.

Consulte la función countplot() en la biblioteca de Seaborn. Primero, importaremos la biblioteca de Seaborn y cargaremos algunos datos de la biblioteca de Seaborn sobre diamantes.

import seaborn as sb

Data_DM = sb.load_dataset("diamonds")
Data_DM.head()

Cada fila de este conjunto de datos contiene información sobre un diamante en particular.

Gráfica de conteo Seaborn - Salida 1

Lo reduciremos utilizando clarity.isin a SI1 y VS2, por lo que tenemos una categoría con solo dos opciones.

Data_DM = Data_DM[Data_DM.clarity.isin(["SI1", "VS2"])]
Data_DM.shape

Una vez que reducimos todo, tenemos alrededor de 25323 diamantes diferentes en este conjunto de datos.

(25323, 10)

Ahora estamos listos para crear nuestra primera gráfica de conteo. Para hacerlo, haremos referencia a la biblioteca Seaborn, llamaremos a la función countplot() y pasaremos la columna que nos gustaría trazar.

Trazaremos la columna color, y estos datos provienen de nuestro marco de datos Data_DM.

sb.countplot(x="color", data=Data_DM)

Lo que hace esto con este gráfico es contar el número de observaciones que tenemos para cada categoría que encuentra en la columna color. Por ejemplo, Seaborn encontró alrededor de 1500 diamantes con un color igual a J.

Gráfica de conteo Seaborn - Salida 2

Si aplicamos value_counts() a la columna color:

Data_DM.color.value_counts(sort=False)

Estos números son los que trazamos cuando usamos la función countplot().

D    3780
E    4896
F    4332
G    4323
H    3918
I    2593
J    1481
Name: color, dtype: int64

Una cosa buena de Seaborn countplot() es que podemos cambiar fácilmente de barras verticales a horizontales. Todo lo que tenemos que hacer es cambiar esta x en una y.

sb.countplot(y="color", data=Data_DM)

Producción:

Gráfica de conteo Seaborn - Salida 3

Diagrama de barras de Seaborn vs. Diagrama de conteo

Entonces, en este punto, puede pensar que el gráfico de recuento de Seaborn se parece mucho al gráfico de barras. Pero hay una gran diferencia: con el gráfico de recuento de Seaborn, solo estamos contando el número de observaciones por categoría.

Con el gráfico de barras de Seaborn, obtenemos una estimación de algunas estadísticas resumidas por categoría. Por ejemplo, podríamos tener el promedio por categoría y obtener los intervalos de confianza de esto; por eso se utiliza un gráfico de barras.

El argumento del orden

Se utilizan para dos cosas diferentes; sin embargo, las opciones de codificación están disponibles en ambos gráficos. Veamos algunas de esas opciones en el código de Seaborn.

Para la primera opción, hablemos del orden en esas barras que aparecen en el gráfico anterior. Si observamos nuestro gráfico de conteo para el color de esos diamantes, veremos que las barras no están actualmente ordenadas según el más popular al menos popular.

Están ordenados alfabéticamente de la D a la J.

sb.countplot(x="cut", data=Data_DM)

Pero, si nos fijamos en otra columna llamada corte, veremos que las barras ya no están ordenadas alfabéticamente.

Gráfica de conteo Seaborn - Salida 4

No está claro al principio cómo Seaborn organiza estos bares; podemos recorrer el proceso. Observamos los tipos de datos de las columnas diamantes y notamos que tenemos varios float64, int64 y categorías.

Data_DM.dtypes

Estas tres columnas se consideran los tipos de datos de categoría. corte, color y claridad son todas categorías.

carat       float64
cut        category
color      category
clarity    category
depth       float64
table       float64
price         int64
x           float64
y           float64
z           float64
dtype: object

Veamos qué significa. Para comprobar el color, tenemos esta propiedad llamada categorías.

Data_DM.color.cat.categories

Esto es lo que usa Seaborn para alinear esas barras.

Index(['D', 'E', 'F', 'G', 'H', 'I', 'J'], dtype='object')

Por lo general, las columnas de “categoría” vendrán con esta propiedad llamada “categorías”, y Seaborn usará esto para averiguar cómo debe alinear esas barras.

Data_DM.cut.cat.categories

Producción :

Index(['Ideal', 'Premium', 'Very Good', 'Good', 'Fair'], dtype='object')

En el primero, nos alineamos alfabéticamente, pero en el segundo, nos alineamos según los mejores diamantes primero y hasta los peores diamantes.

Pero, ¿y si el orden de esa categoría no es como nos gustaría que aparecieran esas barras? La función countplot() de Seaborn tiene un argumento llamado order, y podemos pasar una lista de cómo nos gustaría ordenar esas barras.

ord_of_c = ["J", "I", "H", "G", "F", "E", "D"]
sb.countplot(x="color", data=Data_DM, order=ord_of_c)

Producción:

Gráfica de conteo Seaborn - Salida 5

También podemos ordenar estas barras en orden ascendente o descendente ya que se trata de un marco de datos de Pandas, por lo que recomendamos utilizar el método value_counts(). Esto ordenará nuestras barras de las más populares a las menos populares.

Si seguimos adelante y tomamos el índice, veríamos que la categoría más popular es E y hasta la categoría menos popular, J.

Data_DM.color.value_counts().index

Producción :

CategoricalIndex(['E', 'F', 'G', 'H', 'D', 'I', 'J'], categories=['D', 'E', 'F', 'G', 'H', 'I', 'J'], ordered=False, dtype='category')

Podemos usar este índice cuando creamos nuestro pedido para nuestras barras. Ahora los tenemos ordenados en orden descendente.

Pero si preferimos tenerlos ordenados de forma ascendente.

Todo lo que tenemos que hacer es invertir este índice, lo que podemos hacer con dos dos puntos y uno negativo que cambiará el índice por completo.

sb.countplot(x="color", data=Data_DM, order=Data_DM.color.value_counts().index[::-1])

Producción:

Gráfica de conteo Seaborn - Salida 6

Puede encontrar más opciones cuando visite aquí.

Código completo:

# In[1]:

import seaborn as sb

Data_DM = sb.load_dataset("diamonds")

Data_DM.head()

# In[2]:

Data_DM = Data_DM[Data_DM.clarity.isin(["SI1", "VS2"])]
Data_DM.shape

# In[3]:

sb.countplot(x="color", data=Data_DM)

# In[4]:

Data_DM.color.value_counts(sort=False)

# In[5]:

sb.countplot(y="color", data=Data_DM)

# In[6]: order argument

sb.countplot(x="cut", data=Data_DM)

# In[7]:

Data_DM.dtypes

# In[8]:

Data_DM.color.cat.categories

# In[9]:

Data_DM.cut.cat.categories

# In[10]:

ord_of_c = ["J", "I", "H", "G", "F", "E", "D"]
sb.countplot(x="color", data=Data_DM, order=ord_of_c)

# In[11]:

Data_DM.color.value_counts().index

# In[12]:

sb.countplot(x="color", data=Data_DM, order=Data_DM.color.value_counts().index[::-1])
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Artículo relacionado - Seaborn Plot