我正在尝试使用这些值创建直方图:
[1, 1, 1, 2, 2, 1, 1, 1, 1, 5, 2, 1, 1, 2, 2, 1, 1, 4, 1, 1, 2, 1, 1, 2]
我正在使用的代码就是这个
plt.hist(values, histtype='bar', color='green', alpha=0.5)
plt.title(library_name, fontsize=12)
plt.xlabel(xlabel)
plt.ylabel(ylabel)
x1, x2, y1, y2 = plt.axis()
plt.axis((x1-0.5, x2+0.5, y1, y2+0.05))
plt.savefig("../results/histograms/" + library_name)
有谁知道为什么第一个和最后一个酒吧看起来不同于他们的xtick?我尝试使用plt.margins函数没有结果。
非常感谢
答案 0 :(得分:1)
要获得中心对齐的分箱而不是左对齐分箱,请使用plt.hist(data, bins=np.arange(50)-0.5)
示例代码:
import matplotlib.pyplot as plt
import numpy as np
values = [1, 1, 1, 2, 2, 1, 1, 1, 1, 5, 2, 1, 1, 2, 2,5,3,2,5, 1, 1, 4, 1, 1, 2, 1, 1,7,8,9,9,3,8,6, 2]
offset = 0.5
plt.hist(values, bins=np.arange(1,np.max(values)+2)-offset, histtype='bar', color='green', alpha=0.5)
plt.title('library_name', fontsize=12)
plt.xlabel('xlabel')
plt.ylabel('ylabel')
x1, x2, y1, y2 = plt.axis()
plt.axis((x1-0.5, x2+0.5, y1, y2+0.05))
plt.show()
答案 1 :(得分:0)
顺便说一句,您可以使用[免责声明:我写了]“physt”库,它有一些分箱选项,包括一个适合整数的选项 - 请参阅https://github.com/janpipek/physt,和特别是对你的案件http://nbviewer.jupyter.org/github/janpipek/physt/blob/master/doc/Binning.ipynb#Integer-binning。
代码如下:
import physt
h = physt.histogram(values, "integer")
ax = h.plot(color="green", alpha=0.5, ticks="center")
...然后添加你的轴/ plt格式......