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 == 1)
y 仅在整数值上勾选标签。
补充说明:文档声称第一个参数
plt.figure可以是字符串然后设置为标题,但至少
在我的例子中,这个标题没有出现。
如果您的环境也是如此,请将相应的代码片段更改为:
ax = fig.gca()
ax.yaxis.set_major_locator(tck.MultipleLocator()))
ax.set_title("Top_5_keyword_Group")
我写了一个 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 == 1) y 仅在整数值上勾选标签。
补充说明:文档声称第一个参数 plt.figure可以是字符串然后设置为标题,但至少 在我的例子中,这个标题没有出现。
如果您的环境也是如此,请将相应的代码片段更改为:
ax = fig.gca()
ax.yaxis.set_major_locator(tck.MultipleLocator()))
ax.set_title("Top_5_keyword_Group")