Вывод строк фрейма данных для сравнения

#pandas #matplotlib #seaborn #boxplot

#pandas #matplotlib #сиборн #boxplot

Вопрос:

У меня есть данные в следующем формате, как прикреплено. Итак, в основном для каждого тестового данные, у меня есть 10 наблюдений из разных моделей.

введите описание изображения здесь

Теперь я хочу сравнить изменчивость наблюдений так, как показано ниже. Таким образом, центральная точка представляет среднее значение всех наблюдений, и все значения отображаются в виде прямоугольника вокруг нее. Что-то вроде этого рисунка ниже. Здесь центральная зеленая точка представляет среднее значение, а строка показывает obs_1, obs_2 до obs_10.

введите описание изображения здесь

Я могу нарисовать только простой блок-график после преобразования данных, но он не кажется визуально привлекательным и, следовательно, пытается сделать что-то подобное. Пожалуйста, помогите.

Ответ №1:

График, который вы показали, больше похож на график CI.. не блокплот. И неясно, что представляют столбцы, 95% достоверность среднего значения? Так что не совсем уверен, чего вы хотите.

Допустим, ваши данные выглядят так:

 import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.normal(0,1,(15,10)),
                  columns = ['obs_'  str(i) for i in np.arange(1,11)])
 

Можно создать блок-график каждой строки:

 df.T.boxplot()
 

введите описание изображения здесь

95% ДИ от среднего:

 import seaborn as sns
ax = sns.pointplot(x="index", y="value",
 data=df.reset_index().melt(id_vars="index"), join=False)
 

введите описание изображения здесь

Чтобы добавить некоторые другие точки, например obs_1 , столбец :

 ax.scatter(x = df.index , y= df['obs_1'],c = "k")
 

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

1. Спасибо, чувак! , так что в основном это означает, что seaborn по умолчанию использует линейный график с использованием CI. Кроме того, в дополнение, предположим, что одно из наблюдений здесь является фактическим значением.. Можем ли мы отобразить это фактическое значение на том же приведенном выше графике другим цветом?