matplotlib中条形之间的均匀空间

时间:2016-04-17 15:29:16

标签: python matplotlib

ax3.bar(D, HighC_21, facecolor='g', width=0.8, alpha=1.0, align='edge')  
ax3.bar(D, LowC_21, bottom=HighC_21, color='r', width=0.8, alpha=1, align='edge')

我使用此代码在x轴上绘制条形图,但在开始和结束时有不均匀的空间。如何使条形在x轴上均匀分布?

link

1 个答案:

答案 0 :(得分:1)

您需要使用pyplot.bar的第一个输入来指定每个条形的x位置。您当前正在使用值D,因此条形码应显示在D中的每个x位置。根据您的问题,D中的值不是您想要的条形码。

您需要将第一个输入更改为所需的(均匀间隔)值。您可以使用numpy.linspace轻松完成此操作。

import numpy as np

# Specify where you want the first and last bars as minX and maxX
x = np.linspace(minX, maxX, len(LowC_21))
ax3.bar(x, HighC_21, facecolor='g', width=0.8, alpha=1.0)  
ax3.bar(x, LowC_21, bottom=HighC_21, color='r', width=0.8, alpha=1)