Matplotlib 缺少直方图的最后一个位置

Matplotlib 缺少直方图的最后一个位置,matplotlib,histogram,Matplotlib,Histogram,首先,答案对我来说并不适用,但问题本质上是一样的。我的数据x是一个范围为[-2:18]的列表,标记为[a:U]。最后一个箱子(17或T)实际上是在累积17-T和18-U的数值,显示箱子18-U为空 我的代码如下所示(已省略,x是从.csv读取的): 结果是: 尝试现有的解决方案,bins=len(Labels)+1没有任何区别。您显示的代码无法生成您显示的图形。在某些地方,你额外操纵位置/标签,使一切都出错。还要仔细阅读链接的解决方案:它们不指定存储箱的数量,而是指定实际的存储箱边缘!为了简单

首先,答案对我来说并不适用,但问题本质上是一样的。我的数据
x
是一个范围为[-2:18]的列表,标记为[a:U]。最后一个箱子(17或T)实际上是在累积17-T和18-U的数值,显示箱子18-U为空

我的代码如下所示(已省略,
x
是从.csv读取的):

结果是:


尝试现有的解决方案,
bins=len(Labels)+1
没有任何区别。

您显示的代码无法生成您显示的图形。在某些地方,你额外操纵位置/标签,使一切都出错。还要仔细阅读链接的解决方案:它们不指定存储箱的数量,而是指定实际的存储箱边缘!为了简单起见,我省略了定制的一些部分,我想突出显示设置标签的部分。如果标签指定的是箱子边缘,而不是它们的编号,我不明白为什么箱子列表倒数第二个值会出现这种情况。您的标签与箱子或箱子边缘无关(您可以看到,例如H和I之间)。没有你,我不能帮你解决这个问题。
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=figsize)

Labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
       'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U']
bins = len(Labels)
ax.hist(x, bins=bins, density=False, histtype='step', color='grey', linewidth=2) 
ax.set_xticklabels(Labels)

plt.show()