猿问

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

我想弄清楚如何在我的情节中只制作带有上限“-”的上误差线,我已经通过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() 

和我的地块图片:

我怎样才能实现它?



慕村9548890
浏览 121回答 1
1回答

慕标琳琳

根据您是否希望看到小写字母,您有三种可能性:指定 (2,N) 形 yerr 或在条形图后面绘制误差条之后更改上限(如 BigBen 在下面评论的那样)import matplotlib.pyplot as pltfig,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
随时随地看视频慕课网APP

相关分类

Python
我要回答