如何更改 matplotlib 模块中错误栏的格式

how to change format of my error bars in matplotlib module

我想弄清楚如何在我的情节中只制作带有上限“-”的上误差线,我已经通过 lolims 参数弄清楚了。不幸的是,我的错误栏标有箭头,我更喜欢默认的。上面的子图是我想要的错误栏,下面的是我想要在上面的子图上的标记。

我的代码:

import pandas as pd
import matplotlib.pyplot as plt

sheet = pd.read_excel(load file with my data)

fig, axs = plt.subplots(2, 1)
fig.suptitle('Gene expression', fontsize=16)

axs[0].bar(sheet.columns, sheet.iloc[17],hatch="/", color="white", edgecolor="black")
axs[0].errorbar(sheet.columns, sheet.iloc[17], yerr=sheet.iloc[22], capsize=3, ecolor='black', fmt=' ', elinewidth=1,
                lolims=True)

axs[1].bar(sheet.columns, sheet.iloc[17],hatch="-", color="white", edgecolor="black")
axs[1].errorbar(sheet.columns, sheet.iloc[17], yerr=sheet.iloc[22], capsize=3, ecolor='black', fmt=' ', elinewidth=1,)
plt.show() 

和我的地块图片:

如何实现?

根据您是否希望看到小写字母,您有三种可能性:

  1. 指定 (2,N) 形 yerr 或
  2. 绘制误差条条的后面
  3. (BigBen 在下面评论)

import matplotlib.pyplot as plt

fig,ax = plt.subplots(3)
x = range(1,4)

ax[0].bar(x, x, fc='w', ec='k')
ax[0].errorbar(x, x, yerr=[[0,0,0], [.1,.2,.3]], fmt='none', capsize=3)

ax[1].bar(x, x, fc='w', ec='k', zorder=1 )
ax[1].errorbar(x, x, yerr=[.1,.2,.3], fmt='none', capsize=3, zorder=0)

ax[2].bar(x, x, fc='w', ec='k')
_, cl, _ = ax[2].errorbar(x, x, yerr=[.1,.2,.3], lolims=True, fmt='none', capsize=3)
cl[0].set_marker('_')
#cl[1].set_marker('')  # to remove the lower cap