【发布时间】:2018-01-31 22:37:28
【问题描述】:
首先让我说我知道直方图函数,它只是从数据列表中创建一个漂亮的直方图。对于这个项目,我正在尝试以某种艰难的方式完成所有事情,因为就我而言,更多的代码=更多的练习。
现在问题的核心是,在大量帮助下,我设法编写了提取数据集的代码,获取用户输入的标题和箱数,并将所有内容准确地压缩成“直方图”列表,例如[1,3,5,3,1] 的数字对应于数据范围的频率。
从这一点开始,我要做的是获取该直方图列表并将其放置在使用plt.bar() 的条形图中。我对plt.scatter() 有点熟悉,但似乎 bar 的工作方式与
plt.bar(x, y, align='center')
plt.xticks(y)
plt.show
x 是一个包含 bin 分离值的列表,y 是频率列表,只返回一个空图。任何帮助将不胜感激。
编辑:代码修改:
column="voltage"
y=[14, 5, 5, 4, 3, 5, 5, 4, 6, 9] # frequencies
x=[-4.9183599999999998, -3.916083, -2.9138060000000001, -1.9115290000000003,
-0.90925200000000039, 0.093024999999999025, 1.0953019999999993,
2.0975789999999996, 3.0998559999999991, 4.1021329999999985,
5.1044099999999979] #bin limits
z=range(len(y))
plt.bar(z, y, 1.0)
plt.xlabel("%s" %column)
plt.xticks(z, x)
plt.show()
产生:
非常接近,最终我需要对 x 进行四舍五入,但在此之前,如何让刻度与右侧对齐?另外,为什么 xlabel 行输出“1”而不是字符串?
【问题讨论】:
标签: python python-3.x histogram