python - 当我的 X 变量是分类变量时,如何偏移 X 轴上的误差线(matplotlib)

标签 python seaborn

我正在使用 matplotlib 和 seaborn.barplot 在 python 中构建条形图,X 轴数据是分类的,每个类别有两个配对条形图。我希望仅显示每个类别的两个配对条之一的误差条。 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

最佳答案

如果您的类别编码为数字,您可以像这样进行修改:向 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)

关于python - 当我的 X 变量是分类变量时,如何偏移 X 轴上的误差线(matplotlib),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60979793/

相关文章:

python - ElementTree iterparse 需要多长时间?

python - 无法在 Django 中导入 View (2.1.4、Python 3.7.0、Win 7)

Python:捕获任何异常并将其放入变量中

python - 绘图平滑 matplotlib 和 seaborn

python - matplotlib 1.4.2 与 Seaborn : line markers not functioning

python如何判断是否启用了超线程

Python 未检测到现有模块

python - 如何对热图的索引 DataFrame 上的 x 轴和 y 轴执行自定义排序?

python - 在 seaborn FacetGrid 热图中获取图例

python - 海伯恩 : How to get the count in y axis for distplot using PairGrid