对齐直方图条 - Python

时间:2018-01-21 14:34:09

标签: python alignment histogram

我需要将直方图的条形图居中。

x = array
y = [0,1,2,3,4,5,6,7,8,9,10]

num_bins = len(array)
n, bins, patches = plt.hist(x, num_bins, facecolor='green', alpha=0.5)
barWidth=20
x.bar(x, y, width=barWidth, align='center')

plt.show()

我需要的是,它看起来像this picture

中的那个

我几乎尝试了一切,但仍然无法通过。 谢谢大家

1 个答案:

答案 0 :(得分:1)

对于您的任务,我认为使用NumPy计算直方图并使用bat功能进行绘图会更好。请参阅以下代码,了解如何使用bin_edges。

import matplotlib.pyplot as plt
import numpy as np

num_samples = 100
num_bins = 10
lb, ub = 0, 10 # lower bound, upper bound

# create samples
y = np.random.random(num_samples) * ub

# caluculate histogram
hist, bin_edges = np.histogram(y, num_bins, range=(lb, ub))
width = (bin_edges[1] - bin_edges[0])

# plot histogram
plt.bar(bin_edges[:-1], hist, align='center', 
        width=width, edgecolor='k', facecolor='green', alpha=0.5)
plt.xticks(range(num_bins))
plt.xlim([lb-width/2, ub-width/2])

plt.show()