【问题标题】:Unexpected behavior from matplotlib using bar plots for floating valuesmatplotlib 使用条形图显示浮动值的意外行为
【发布时间】:2021-06-30 12:00:43
【问题描述】:

我的代码:

import matplotlib.pyplot as plt
a = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
b = [8.8913, 3.9714, 2.3416, 1.5099, 1.0078, 0.6577, 0.4198, 0.2523, 0.1141]
plt.bar(a,b)
plt.show()

我在此代码中找不到问题,但此输出的图表未显示真实值。

输出:

有几个错误,例如,x 轴应该有 0.1,0.2,0.3.,.. 但它从 -0.3 开始?同样对于 0.2,高度应该在 3.9 左右,但这里是 8 左右?

问题:我哪里出错了?

【问题讨论】:

    标签: python matplotlib bar-chart


    【解决方案1】:

    您需要调整条形的宽度(默认情况下,宽度设置为 0.8;与您的值一样小,您可以看到为什么这会成为问题)。

    宽度设置为 0.01 (plt.bar(a,b, width = 0.01)) 的数据如下所示:

    您提到的两个问题都是由于这个宽度参数造成的。 barplot 中的条形居中围绕它们的 x 值,因此 0.1 是第一个条形的中心(宽度为 0.8,范围从 -0.3 到 0.5)。此外,由于第一个条形图最高,它涵盖了该范围内的任何内容(因此,由于重叠,除了最后一个条形图之外的所有内容都至少部分被覆盖)。

    【讨论】:

      猜你喜欢
      • 2021-11-02
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 1970-01-01
      • 2019-06-22
      • 2017-05-13
      相关资源
      最近更新 更多