如何使用 matplotlib 从字典中绘制水平条形图?

sho*_*mar 3 python matplotlib

我在用:

plt.bar(range(len(d)), d.values(), align='center')
plt.yticks(range(len(d)), d.keys())
plt.xlabel('frequency', fontsize=18)
plt.ylabel('keywords', fontsize=18)

plt.show()
Run Code Online (Sandbox Code Playgroud)

我得到以下输出: 在此输入图像描述

但我想在 y 轴而不是 x 轴上显示每个关键字对应的栏。我怎样才能做到这一点?

tmd*_*son 6

使用 matplotlib 的barh()函数将为您创建一个水平条形图:

plt.barh(range(len(d)), d.values(), align='center')
Run Code Online (Sandbox Code Playgroud)

来自文档:

matplotlib.pyplot.barh(bottom, width, height=0.8, left=None, hold=None, **kwargs)

制作一个水平条形图,其矩形边界为:

left, left + width, bottom, bottom + height

(左、右、下、上边缘)

底部、宽度、高度和左侧可以是标量或序列

另请参阅此处barhmatplotlib 图库页面上的演示