【问题标题】:Display a value in bar plot在条形图中显示一个值
【发布时间】:2019-07-20 12:18:08
【问题描述】:

我生成了这个图,但我无法为每个条正确显示一个值。这是我的条形图:

这是我创建上述情节的代码:

X_perc = [10, 7, 3, 5, 5]
cols = ['3.1-4.14', '4.14-5.18', '6.22-7.26', '7.26-8.3', '5.18-6.22']
data = np.array([[10, 7, 5, 5, 3],])

fig, ax=plt.subplots()
for i, (name, v) in enumerate(zip(cols, X_perc)):
    bottom=np.sum(data[:,0:i], axis=1)
    ax.bar(1,data[:,i], bottom=bottom, label="{}".format(name))
    ax.text(0.7, (v*i)/v * i + v + i, str(v), fontweight='bold')

plt.legend(framealpha=1)
plt.axis([-10, 10, 0, 31])
plt.tick_params(
    axis='x',          
    which='both',      
    bottom=False,      
    top=False,         
    labelbottom=False) 

【问题讨论】:

    标签: python-3.x numpy matplotlib bar-chart


    【解决方案1】:

    您可以使用累积的位置总和来注释您的堆叠条

    positions = np.cumsum(data)
    
    fig, ax=plt.subplots()
    for i, (name, v) in enumerate(zip(cols, X_perc)):
        bottom=np.sum(data[:,0:i], axis=1)
        ax.bar(1,data[:,i], bottom=bottom, label="{}".format(name))
        ax.text(0.7, positions[i], str(v), fontweight='bold') # Use it here
    

    【讨论】:

      猜你喜欢
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-21
      • 2021-11-02
      相关资源
      最近更新 更多