Добавление баров ошибок к сгруппированному гистограмме в пандах

Я создаю сюжет в пандах, сначала генерируя следующий DataFrame:

plotData=resultData.groupby(['student_model','lo_id']).describe().nShots.unstack().reset_index()
plotData['se'] = plotData['std']/np.sqrt(plotData['count'])

Результирующий кадр данных выглядит следующим образом:введите описание изображения здесь

Тогда я разворачиваюсь и строю сюжет так:

plotData.pivot(index='student_model',columns='lo_id',values='mean').plot(kind='bar')

В результате чего следующее:

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

Это все нормально, но мне нужно добавить значения из столбца "se" в виде панелей ошибок в график, и я не могу заставить его работать. Я знаю, что могу добавить аргумент для вызова сюжета (т.е. ...plot(kind='bar', yerr=???)), но я не знаю, как правильно отформатировать это, чтобы оно работало правильно. Есть идеи?

1 ответ

Решение

Публикация данных в виде картинки не очень хорошая идея. Вот решение:

In [16]:
#se column store the errorbar values
print df
  class1 class2  se  val
0      A      R   1    1
1      A      G   1    2
2      B      R   1    3
3      B      G   1    4

[4 rows x 4 columns]
In [17]:

df.pivot(index='class1',columns='class2',values='val').plot(kind='bar', yerr=df.pivot(index='class1',columns='class2',values='se').values)
#or yerr=df.se.reshape((2,2))
#Where (2,2) is the shape of df.pivot(index='class1',columns='class2',values='val')
#which is less verbose but may not be general

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

Другие вопросы по тегам