我正在尝试在matplotlib中制作一个条形图,但是看起来有些不正确:
import numpy as np
import matplotlib.pyplot as plt
bins = np.linspace(0, 1, 10)
print(bins) # = [0. 0.11 0.22 0.33 0.44 0.55 0.66 0.77 0.88 1.]
plt.bar(bins, bins)
我希望两个轴上的楼梯从0:1开始-我错过了什么吗?任何建议都会有所帮助!
我正在使用matplotlib 3.0.3:
pip freeze | grep matplotlib
# returns matplotlib==3.0.3
答案 0 :(得分:3)
答案 1 :(得分:1)
虽然其他答案指出了问题,但您可能会很感兴趣,因为您知道可以根据以下数据点的数量来调整宽度,而不是手动指定宽度。
P。 S:尤其是,当您的数据范围介于0到1之间时,width = 1.0/(len(bins) + 1)
是一个更好的选择。有关通用公式,请参见下文。计算宽度时分母中的常量+1
是一个选择问题。您也可以选择2、3等,以使宽度变薄。
import numpy as np
import matplotlib.pyplot as plt
bins = np.linspace(0, 1, 10)
width = 1.0/(len(bins) + 1)
plt.bar(bins, bins, width=width)
plt.show()
为了使它更笼统,我想出了这个公式。即使您的数据超出0和1,这也将起作用
width = (max(bins) - min(bins)) * 1.0/(len(bins) + 1)