【问题标题】:matplotlib: histogram is not displayingmatplotlib:直方图未显示
【发布时间】:2016-08-29 08:02:54
【问题描述】:

我正在尝试绘制直方图,但图形窗口中没有显示任何内容。 我的代码如下:

import numpy as np
import matplotlib.pyplot as plt

values = [1000000, 1525097, 2050194, 1095638, 1620736, 2145833, 1191277, 1716375, 1286916, 1382555]

plt.hist(values, 10, histtype = 'bar', facecolor = 'blue')
plt.ylabel("Values")
plt.xlabel("Bin Number")
plt.title("Histogram")
plt.axis([0,11,0,220000])
plt.show()

这是输出:

我正在努力实现这个情节

任何帮助将不胜感激......

【问题讨论】:

  • plt.axis([0,11,0,220000]) 这毫无意义。你能说一两句你为什么加入这个以及它应该做什么吗?
  • 是的,对不起,这是错误的,我的错...我在开始时添加它,当我的情节显示负值时...不知道为什么

标签: python python-2.7 matplotlib


【解决方案1】:

您对直方图是什么感到困惑。使用给定数据可以生成的直方图如下所示。

直方图主要计算有多少给定值落在给定范围内。

您为axis() 函数提供了不正确的参数。结束值为2200000 您错过了一个零。你也交换了论点。首先是 x 轴的限制,然后是 Y 轴的限制。这是修改后的代码:

import numpy as np
import matplotlib.pyplot as plt

values = [1000000, 1525097, 2050194, 1095638, 1620736, 2145833, 1191277, 1716375, 1286916, 1382555]

plt.hist(values, 10, histtype = 'bar', facecolor = 'blue')
plt.ylabel("Values")
plt.xlabel("Bin Number")
plt.title("Histogram")
plt.axis([0,2200000,0,11])
plt.show()

这是生成的直方图:

【讨论】:

  • 是的,这是我的错误,但即使将 220000 更改为 2200000 也没有解决任何问题,我试图将 0-10 沿 x 轴放置,将 0-2200000 沿 y 轴放置。还是谢谢
  • @SohailAshraf 您误解了直方图是什么。查看更新的答案。
  • 不,我没有误会。请检查我想在上面生成的输出...谢谢
  • @SohailAshraf 不可能从给定的直方图生成这样的输出。至少这不是直方图的作用。您将必须生成 '1' 的 1000000 个值,依此类推,然后绘制直方图
  • 对不起,我明白了...我做错了,不可能...我需要使用条形图。无论如何感谢您的帮助...
【解决方案2】:

我终于做到了……

代码如下:

import numpy as np
import matplotlib.pyplot as plt

values = [1000000, 1525097, 2050194, 1095638, 1620736, 2145833, 1191277, 1716375, 1286916, 1382555]
strategy = [1,2,3,4,5,6,7,8,9,10]
value = np.array(values)
strategies = np.array(strategy)
plt.bar(strategy, values, .8)
plt.ylabel("Values")
plt.xlabel("Bin Number")
plt.title("Histogram")
plt.axis([1,11,0,2200000])
plt.show()

输出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    • 2019-07-11
    • 2017-04-28
    • 2017-11-14
    • 1970-01-01
    • 2011-09-06
    相关资源
    最近更新 更多