получите строку ошибок, показывающую стандартное отклонение, используя схему подсчета от seaborn

#python #pandas #matplotlib #seaborn

Вопрос:

У меня есть данные, состоящие из 3 столбцов, содержащих данные 2 категории, как указано ниже вСтол:-

Я хочу получить строку ошибок, показывающую стандартное отклонение, используя схему подсчета от seaborn. Я сгенерировал барплот, введите описание изображения здесьиспользуя код :-

 ax = sns.countplot(x="variable",hue="value", data=pd.melt(data))
 

Как я могу получить панель ошибок, используя график подсчета, показывающий стандартное отклонение.

Комментарии:

1. Вы подсчитываете количество элементов в столбце типа Ours или Google . Количество-это точное число, у него нет распределения, поэтому у него нет ошибки

Ответ №1:

Из таких категориальных данных нельзя рассчитать среднее и стандартное отклонение. Вы можете рассчитать среднее и стандартное отклонение по всем трем Q (рисунок в конце):

Во-первых, давайте создадим df:

 import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.DataFrame({'Q1':['Ours', 'Ours', 'Ours', 'Google', "Google", "Google", "Google", "Google" , "Google", "Google", "Google"],
        'Q2':['Ours', 'Ours', 'Ours', 'Ours', "Google", "Google", "Google", "Google", "Google", "Google", "Google"],
        'Q3':['Ours', 'Ours', 'Ours', 'Ours', "Ours", "Google", "Google", "Google",  "Google", "Google", "Google"]}
                    )
 

Затем мы можем подсчитать, сколько раз категория присутствует в каждом столбце, и построить новый df:

 # get the count for each column:
Q1 = df['Q1'].value_counts()
Q2 = df['Q2'].value_counts()
Q3 = df['Q3'].value_counts()

# convert one pd.Series in a data frame. Add the others as new column
new_df = Q1.to_frame()
new_df['Q2'] = Q2
new_df['Q3'] = Q3

# convert the df to long format
new_df =  new_df.transpose()
new_df = new_df.melt()

 

Созданный фрейм данных:

 
  variable  value
0   Google      8
1   Google      7
2   Google      6
3     Ours      3
4     Ours      4
5     Ours      5
 

С помощью этих данных мы можем построить гистограмму, включающую стандартное отклонение:

 ax = sns.barplot(x="variable", y="value", data=new_df, ci="sd")
ax.set(xlabel='over all three Q', ylabel='counts')

plt.show()
 

барплот