我在使用matplotlib.pyplot.bar时遇到问题,其中条形图只能具有恒定的宽度,但是我想绘制一个图,其中条形图位于两点之间。从图中可以看出,点之间的距离不同,我想用条形图填补所有空白。抱歉,如果以前有人问过我,我找不到它。
因此,基本上,我想禁止点i
与i+1
之间的距离宽度,如果有任何意义。
答案 0 :(得分:1)
以下示例创建一个具有7个高度值和8个边界的条形图。连续边界之间的差异用作钢筋宽度。钢筋默认情况下与其中心对齐,但是当宽度不均匀时,需要align='edge'
。
from matplotlib import pyplot as plt
import numpy as np
bounds = np.array([21000, 31000, 41000, 53000, 62000, 73000, 81000, 90000])
heights = np.random.randint(50000, 120000, len(bounds) - 1)
plt.bar(bounds[:-1], heights, width=np.diff(bounds), align='edge', color='crimson', ec='navy')
# plt.xticks(bounds) # to have the boundaries as x ticks
plt.show()