在图中包含条形数值

时间:2019-06-05 11:31:26

标签: python matplotlib plot

我正在尝试创建一个条形图,每个条形都有其值,但是值超过了该图的宽度。

bar chart

代码如下:

fig, ax = plt.subplots()
width = 0.75
ind = np.arange(len(values))
ax.barh(ind, values, width, color = colors)
ax.set_yticks(ind)
ax.set_yticklabels(names)
plt.title('\'%s\' attribute distribution' % name)
plt.xlabel('Count')
plt.ylabel(name)

for i, v in enumerate(values):
  ax.text(v,i, ' '+str(v), va='center', fontweight='bold')

for i, r in enumerate(ratios):
  ax.text(r,i, ' '+str(r)+'%', color = 'white', fontweight='bold')

plt.show()

3 个答案:

答案 0 :(得分:2)

plt.xlim(None, 1.2*max(values))似乎可以解决问题。

bar chart

感谢ImportanceOfBeingErnest

答案 1 :(得分:0)

您可以在图形周围删除此“框”。尝试将其添加到您的代码中。

for spine in plt.gca().spines.values():
    spine.set_visible(False)

plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')

答案 2 :(得分:0)

看看现在添加它是否有帮助

plt.gcf().subplots_adjust(right=1.7)