首页 > 解决方案 > Matplotlib 不显示所有值

问题描述

我正在尝试以条形图的形式显示以下值。但是,我只显示一个值(619,1)。下面是我用来绘制下图的代码:

import matplotlib.pyplot as plt 
plt.style.use('ggplot')
values=  [1, 2, 3, 4, 5]
a = [619, 101, 815, 1361, 178]
plt.figure(figsize=(5, 5))
plt.bar(a, values)
plt.show()

代码的结果

标签: python-3.xmatplotlib

解决方案


条形宽度设置为默认值,0.8因此当您的 x 轴具有如此大的范围时,条形非常细,以至于它们消失了。

原因0.8是条形图通常用于标记类别,这些类别1沿 x 轴有效间隔。

所以你可以直接设置宽度。(也可以计算宽度,使其更加自动化,但您需要确定重叠等)

在此处输入图像描述

plt.figure(figsize=(5, 5))
plt.xlim(0, 1450)
plt.bar(a, values, width = 50)

似乎您的数据可能更适合水平条形图(但不要太认真,因为它可能根本没有正确的含义),如果您想要水平条,您可以这样做:

在此处输入图像描述

plt.barh(values, a)

推荐阅读