Matplotlib 在 y 轴上跳过一些值

Matplotlib skipping some values in the y axis

我写了一个 python 代码 运行s matplotlib 并基于 2 个列表创建了一个图表,一个用于 x 轴,另一个用于 y 轴..

名单如下..

lst = ['interest', 'anticipation', 'submission', 'sadness', 'anger'] 
num = ['3', '2', '1', '1', '1']

现在当我运行下面的代码

plt.figure("Top_5_keyword_Group")
plt.bar(revLst(lst),revLst(num), color="green")
plt.pause(0.05)
time.sleep(2)
plt.show()

输出如下图:

如果你看到图表,它在开始时缺少一个零,不仅是零,还有任何其他不在 y 轴列表中的值,比如列表是 [1,3,5,9,2],我会4,6,7,8 缺失..这在某种程度上破坏了图表的目的..

有什么简单的方法可以修复这段代码吗?

我的python版本是3.7

为什么将 num 定义为 strings 的列表? 一个更自然的解决方案是将其定义为 整数 .

的列表
lst = ['interest', 'anticipation', 'submission', 'sadness', 'anger']
num = [3, 2, 1, 1, 1]

然后,运行:

import matplotlib.ticker as tck

plt.figure("Top_5_keyword_Group")
plt.bar(lst[::-1], num[::-1], color="green")
plt.gca().yaxis.set_major_locator(tck.MultipleLocator())
plt.show()

我得到了如下图片:

请注意,我添加了 MultipleLocator(默认 base == 1y 仅在整数值上勾选标签。

补充说明:文档声称第一个参数 plt.figure可以是字符串然后设置为标题,但至少 在我的例子中,这个标题没有出现。

如果您的环境也是如此,请将相应的代码片段更改为:

ax = fig.gca()
ax.yaxis.set_major_locator(tck.MultipleLocator()))
ax.set_title("Top_5_keyword_Group")