Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在matplotlib中为不等间距的存储单元绘制具有相同存储单元宽度的直方图_Python_Matplotlib_Histogram - Fatal编程技术网

Python 如何在matplotlib中为不等间距的存储单元绘制具有相同存储单元宽度的直方图

Python 如何在matplotlib中为不等间距的存储单元绘制具有相同存储单元宽度的直方图,python,matplotlib,histogram,Python,Matplotlib,Histogram,我试图在matplotlib中绘制包含多个数据系列的直方图 我有不等间距的箱子,但我希望每个箱子都有相同的宽度。所以我使用属性width的方式如下: aa = [0,1,1,2,3,3,4,4,4,4,5,6,7,9] plt.hist([aa, aa], bins=[0,3,9], width=0.2) 结果是: 如何消除两个系列的两个对应箱子之间的余量?即,我如何为每个箱子分组不同系列的棒材 多亏了一个解决方案是用numpy计算直方图,然后用手分别绘制条形图: aa1 = [0,1,1,

我试图在matplotlib中绘制包含多个数据系列的直方图

我有不等间距的箱子,但我希望每个箱子都有相同的宽度。所以我使用属性
width
的方式如下:

aa = [0,1,1,2,3,3,4,4,4,4,5,6,7,9]
plt.hist([aa, aa], bins=[0,3,9], width=0.2)
结果是:

如何消除两个系列的两个对应箱子之间的余量?即,我如何为每个箱子分组不同系列的棒材


多亏了

一个解决方案是用numpy计算直方图,然后用手分别绘制条形图:

aa1 = [0,1,1,2,3,3,4,4,5,9]
aa2 = [0,1,3,3,4,4,4,4,5,6,7,9]
bins = [0,3,9]
height = [np.histogram( xs, bins=bins)[0] for xs in [aa1, aa2]]
left, n = np.arange(len(bins)-1), len(height)

ax = plt.subplot(111)
color_cycle = ax._get_lines.color_cycle

for j, h in enumerate(height):
    ax.bar(left + j / n, h, width=1.0/n, color=next(color_cycle))

ax.set_xticks(np.arange(0, len(bins)))
ax.set_xticklabels(map(str, bins))

很好的解决方案。。我只是等了一会儿,想知道里面有没有什么东西+1目前,
width
可以是一个数组。我把这个问题理解为希望栏的宽度与箱子的宽度一致……因为没有其他答案,我接受它。请注意,此解决方案仅适用于Python 3+,因为在
ax.bar()调用中计算偏移量时使用了隐式浮点除法。考虑添加<代码>浮点(j)< /Case> CAST,以便对Python 2也有用。Thanks@unsel我想你关于浮点数的看法是对的;我在Python2.7上运行了这个;但这对我来说很有效,因为我总是在脚本之上有来自未来导入部门的