Я привык делать свои стрижки на морском дне, и мне нравится макет для показа баров доверия, но у меня есть специальный случай в наборе данных, где у меня уже есть доверительный интервал, например:
month ci-b mean ci-t
201801 0.020 0.0206 0.021
201802 0.019 0.0198 0.0204
201803 0.022 0.0225 0.0228
201804 0.022 0.0236 0.0240
201805 0.023 0.0235 0.0239
Есть ли способ вручную вводить значения для линий доверительного интервала морского берега? Или использовать его как "Нет" и использовать некоторую функцию matlib, чтобы установить доверительный интервал на графике (но сохраняя строгий барплот)
Когда я делаю:
ax = sns.barplot('month','mean',data=df, ci=None)
Я получаю, как и ожидалось, обычный барплей:
И когда я пытаюсь использовать панель ошибок matlib следующим образом:
ax = sns.barplot('month','mean',data=df, ci=None)
plt.errorbar(x=df['month'],y=df['mean'],yerr=(df['ci-t']-df['ci-b']))
Все перепуталось с одной странной линией, проигранной на рисунке:
Я неправильно использую ошибку? Есть ли лучший инструмент для этого?
Месяцы интерпретируются по-разному с помощью seaborn
и matplotlib
приводит к нечетному размещению баров ошибок. Вам также необходимо указать fmt='none'
чтобы избежать errorbar
пунктах данных точки errorbar
. Следующий код помещает строки ошибок в правильные местоположения x:
ax = sns.barplot('month','mean',data=df, ci=None)
plt.errorbar(x=[0, 1, 2, 3, 4],y=df['mean'],
yerr=(df['ci-t']-df['ci-b']), fmt='none', c= 'r')
plt.errorbar
добавляет и вычитает одну и ту же ошибку с обеих сторон при передаче одномерного массива значений. Вот документация .