我正在尝试在一个直方图上绘制3种不同的分布。由于我不明白的原因,对于低值,列在X轴刻度线之间居中,但对于高值,列不在中心。令人困惑的是,当我尝试使用随机数而不是数据时,此问题已解决。
绘图功能:
import matplotlib.pyplot as plt
plt.rc('font',family='Phetsarath OT')
plt.rcParams["legend.fontsize"] = 12
%matplotlib inline
def plotHistogram_test(x, y, z):
plt.figure(figsize=[10, 6])
plt.hist([x, y, z], color=['blue','black', 'red'], bins=10, align='mid', rwidth=0.5)
plt.gca().spines['right'].set_color('none')
plt.gca().spines['top'].set_color('none')
plt.title('', fontsize=14)
plt.xlabel('', fontsize=14, labelpad=5)
plt.ylabel('', fontsize=14, labelpad=5)
plt.xticks(np.arange(0, 1.1, step=0.1), fontsize=12)
plt.yticks(fontsize=12)
plt.tick_params(axis='both', which='both', left=True, bottom=True,labelbottom=True)
plt.show()
带有随机数的输出:
plotHistogram_test(np.random.uniform(size=100), np.random.uniform(size=100), np.random.uniform(size=100))
具有实际数据的输出:
请注意列如何开始居中,然后慢慢漂移...
答案 0 :(得分:0)
设置bins=[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]
可解决此问题。