我有一个数字列表。列表类似于[0,0,1,0,1 ....]。目前它只有二进制数字,但稍后它也可以有十进制数字。我想在列表中绘制该序列的直方图。 当我使用matplotlib库的标准hist函数时,我只得到两个条形图。它全部为零,所有零条件,并显示两条条形图的直方图。但我想以不同的方式进行策划。 我想要一个no = bars = list of length 和 每个柱的高度=列表中的值(位置=条#)。
以下是代码:
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]
然后绘制它但我想要更好的东西。
答案 0 :(得分:3)
您描述的行为是直方图的工作方式;它显示了值的分布。听起来我想要创建一个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')
会产生: