Гистограмма с доверительными интервалами выглядит иначе с параметром yerr - PullRequest
0 голосов
/ 08 мая 2020

Во-первых, извините, если кто-то уже задавал этот вопрос об этом сюжете (я уже просмотрел несколько сообщений stackoverflow).

thedesiredplot

На графике представлены четыре столбчатых диаграммы среднего значения с допустимой погрешностью (запас = среднее + -станд * 1,96), представленной вертикальными линиями поверх них.

В любом случае, проблема, с которой я столкнулся, заключается в том, что моя диаграмма столбцов выглядит нормально без параметра yerr.

myplotofmeans

Однако, как только я ввожу параметр yerr, yerr = df.std (axis = 1), в plt.bar, среднее значение столбцы значений становятся маленькими и центрируются вокруг нуля. см. изображение.

myplotwithyerr

Честно говоря, я не знаю, в чем проблема. Я также пробовал экспериментировать с доверительными интервалами, и я все еще получаю тот же график, когда вводится параметр yerr.

upper=[1.96*s[i] for i in range(4)], lower=[(-1.96)*s[i] for i in range(4)],
ci=list(zip(lower,upper))
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(12345)

df = pd.DataFrame([np.random.normal(32000,200000,3650), 
                   np.random.normal(43000,100000,3650), 
                   np.random.normal(43500,140000,3650), 
                   np.random.normal(48000,70000,3650)], 
                  index=[1992,1993,1994,1995])

plt.figure(figsize=(8,8))
xt = [1992,1993,1994,1995]
plt.xticks(xt)
bar_plot = plt.bar(df.index, df.mean(axis=1),capsize=10)
#bar_plot = plt.bar(df.index, df.mean(axis=1),,yerr=df.std(axis=1)*1.96, capsize=10)
plt.show()

1 Ответ

0 голосов
/ 08 мая 2020

Вы можете использовать штриховой график seaborn:

import seaborn as sns

sns.barplot(data=df.stack().reset_index(name='value'),
            x='level_0',
            y='value',
            color='C0')

Вывод:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...