【问题标题】:Histogram in PythonPython中的直方图
【发布时间】:2012-06-04 09:24:02
【问题描述】:

我有一个数字列表。这个列表就像 [0,0,1,0,1 .... ] 。目前它只有二进制数字,但后来它也可以有十进制数字。我想在列表中绘制这个序列的直方图。 当我使用 matplotlib 库的标准 hist 函数时,我只得到两个条。它计算全零和全一,并向我显示带有两个条的直方图。但我想以不同的方式进行绘图。 我想要一个条数 = 列表的长度 和 每个条形的高度 = 列表中 ( position = bar# ) 处的值。

代码如下:

 def plot_histogram(self,li_input,):
     binseq = numpy.arange(len(li_input))
     tupl = matplotlib.pyplot.hist(li_input,bins=binseq)
     matplotlib.pyplot.show()

li_input 是上面讨论的列表。

我可以用一种讨厌的方式来做:

li_input_mod = []
   for x in range(len(li_input)):
   li_input_mod += [x]*li_input[x]

然后绘制它,但我想要更好的东西。

【问题讨论】:

  • 所以基本上你想要一个情节。

标签: python numpy matplotlib


【解决方案1】:

您描述的行为是直方图的工作方式;它显示了值的分布。听起来你想创建一个bar chart

import matplotlib.pyplot as plt

x = [0,0,1,0,1,1,0,1,1,0,0,0,1]
plt.bar(range(len(x)), x, align='center')

会产生:

【讨论】:

    猜你喜欢
    • 2011-01-02
    • 2014-04-15
    • 2015-03-07
    • 2013-09-13
    • 2020-10-28
    • 2016-07-11
    • 2015-07-21
    • 2023-04-05
    相关资源
    最近更新 更多