Как сместить погрешности на оси X, когда моя переменная X категориальна (matplotlib) - PullRequest
3 голосов
/ 01 апреля 2020

Я строю барплот в python, используя matplotlib и seaborn.barplot, данные по оси X категориальны с двумя парными столбцами для каждой категории. sh, чтобы показать панель ошибок только для одного из двух парных столбцов для каждой категории. errorevery = 2 позволяет мне применять панель ошибок для каждой другой панели, но панель ошибок расположена между двумя барами, а не в середине первого бара (см. фото ниже).

Вот пример моего текущего кода:

sns.barplot(y='val', x='category', data=df, ax=ax, hue='hue')
plt.errorbar('category','val',data=df, yerr=df.yerr, fmt='none', errorevery=2, color='black', capsize=5)

Текущий график

Current Plot

1 Ответ

0 голосов
/ 02 апреля 2020

Если ваши категории закодированы как числа, вы можете взломать их следующим образом: Добавить новый столбец в свой DataFrame, содержащий категории, уменьшенные на половину ширины бара:

df['category_shifted'] = df['category'] - 0.2

Затем передать эти скорректированные значения в вызове функции панели ошибок:

plt.errorbar('category_shifted', 'val', data=df, yerr=df.yerr, fmt='none', 
             errorevery=2, color='black', capsize=5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...