我正在尝试绘制堆积条形图。但是,我无法减少条之间的间距。我想保持条形窄,但条形之间没有空间或更小的空间。
我使用以下代码:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 21 16:56:27 2017
@author: Sayali
"""
import seaborn
import matplotlib.pyplot as plt
MA1D = [52.18507078,52.18227723,44.02015981]
MA1S = [47.81492922,47.81772277,55.97984019]
MA1E = [3.32543281,1.563038488,7.179669498]
figure = plt.figure()
figure.text(0.5, 0.04,'Days' , ha='center')
figure.text(0.02, 0.5, 'Amount of time (Percentage)', va='center',
rotation='vertical')
plt.subplot(3, 1, 1)
plt.grid(zorder=0,which='major', axis='y', color='silver', ls='dotted'
)
plt.bar(range(len(MA1D)), MA1D, color='salmon',width=0.1,
align='center', zorder=2, yerr=MA1E, error_kw=dict(ecolor='red', lw=2,
capsize=3, capthick=1,zorder=5))
plt.bar(range(len(MA1S)), MA1S, bottom=MA1D,
color='whitesmoke',width=0.1, align='center', zorder=2 )
plt.box(on=None)
plt.yticks([0,50,100])
plt.subplots_adjust(left=0.075, right=0.9, top=0.9, bottom=0.1)
plt.subplot(3, 1, 2)
plt.bar(range(len(MA1D)), MA1D)
plt.bar(range(len(MA1S)), MA1S, bottom=MA1D)
plt.box(on=None)
plt.subplot(3, 1, 3)
plt.bar(range(len(MA1D)), MA1D)
plt.bar(range(len(MA1S)), MA1S, bottom=MA1D,
color='whitesmoke',width=0.1, align='center', zorder=2)
plt.subplots_adjust(wspace=0.07, hspace=0.05)
plt.show()
答案 0 :(得分:0)
函数bar()的参数如下:
bar(left, height, width=0.8, bottom=None, hold=None, data=None, **kwargs)
您应该看到的是left
参数。这代表了每个酒吧的起点。
在您的代码中
range(len(MA1D))
# this would be [0,1,2]
因此,为了减少宽度,您只需要制作类似下面的内容
[0.3,0.5,0.7]
在这种情况下,您应该注意参数width
。如您所见,width
的默认值为0.8
我相信你可以自己调整它。