Python 带有Matplotlib的条形图显示的条形图宽度过大

Python 带有Matplotlib的条形图显示的条形图宽度过大,python,matplotlib,Python,Matplotlib,我是Matplotlib的新手,我正在尝试用下面的代码绘制一个简单的条形图 导入matplotlib.pyplot作为plt X=[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9] y=[0.0,0.0,0.0,0.0,0.8,0.2,0.0,0.0,0.0,0.0,0.0] plt.条(X,y,align='edge',width=0.8,edgecolor='black') plt.xticks(X) plt.show() 我不知道为什么会得到这样的图。有人

我是Matplotlib的新手,我正在尝试用下面的代码绘制一个简单的条形图

导入matplotlib.pyplot作为plt
X=[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]
y=[0.0,0.0,0.0,0.0,0.8,0.2,0.0,0.0,0.0,0.0,0.0]
plt.条(X,y,align='edge',width=0.8,edgecolor='black')
plt.xticks(X)
plt.show()
我不知道为什么会得到这样的图。有人能帮我吗?谢谢


Matplotlib完全按照指示操作-从x=0.4开始绘制高度为0.8、宽度为0.8的条形图(因此在x=1.2之前占用空间),从x=0.5开始绘制高度为0.2、范围为x=1.3的条形图

这看起来很奇怪,因为0.8的宽度对于您的比例来说太大了:您的数据范围为0-1,0.8占据了其中的80%,从而导致水平拉伸的条。将“条宽度”设置为0.1会产生更美观的结果


谢谢!你是说当条形图的x坐标是数字时,我应该考虑比例吗?似乎如果我将X设置为字符串数组,matplotlib将自动调整图形。对于X轴上的字符串标签,matplotlib将沿
X[0]->0,X[1]->1,X[2]->2等线将它们映射为数值,并使用0.8默认宽度(这将在该比例上很好地分隔条线)