matplotlib条形图间距

时间:2018-02-16 17:57:58

标签: matplotlib formatting bar-chart

我试图为每个N值绘制3个条形图。数据是:

N=['A','B','C','D','E','F']
SF = (0.87,9.4,49,110,820,1752)
IRT = (0.34,25,210,487,2861,5541)
IRTO = (0.5,33,271,568,3031,6314)

这些w(宽度),y_pos和figsize的数量基本上只是试验和错误,直到它看起来足够我的眼睛......

w = 1
y_pos = 4*np.arange(len(N))

fig, ax = plt.subplots(figsize=(10,5))  
rects1 = ax.bar(y_pos - w, SF, align='center', alpha=0.7, width=w, color="lightgrey", log=True)
rects2 = ax.bar(y_pos , IRT, align='center', alpha=1.0, width=w, color="grey", log=True)
rects3 = ax.bar(y_pos + w, IRTO, align='center', alpha=1.0, width=w, color="black", log=True) 

plt.xticks(y_pos,N,fontsize=13)

legend = ax.legend((rects1[0], rects2[0], rects3[0]), ('SF', 'IRT', 'IRTO'), loc='upper left')

plt.show()

所有这些都会产生以下情节:

enter image description here

这很不错,不幸的是我喜欢让一切尽可能完美,所以我想基本上做4个:

  1. 减小左轴和第一个条(以及最后一个条和右轴)之间的空间。
  2. 增加顶轴的大小,使最高的条不接近它
  3. 移除下轴上的中间刻度线
  4. 添加蓝色标记(在条形图之间) - 请参见下图:
  5. enter image description here

    我真的试图这样做,但我找不到办法做到这一点。 我能够单独做3号,但不能做4号。

    谢谢!

0 个答案:

没有答案