因此,您在轴上看到的标签与您的箱子的宽度几乎没有关系.实际上,选择轴上的标签使得数据在相应的轴上可见.如果你让seaborn(matplotlib实际上)选择bin大小和数字,会发生类似的事情.如果指定bin编号,则选择bin的宽度,使得整个x-range数据位于bin中.
如果要控制箱的宽度,则需要传递列表而不仅仅是bin参数的数字.假设您想要从0到100的10个箱子,您可能会写:
g.map(plt.hist, 'age', bins=range(0, 110, 10)], color = 'r')
哪个会给你:
因此,箱子看起来像[0,10,…,100].
您可能不希望这么硬编码,并希望有一些更灵活的方式来指定垃圾箱.一种选择是定义一个bin宽度,并从数据的开头到结尾都有bin.这看起来像这样:
b_width = 10 # chose an arbitrary value here
my_bins = np.arange(min(titanic['age']), max(titanic['age']) + b_width, b_width)
g.map(plt.hist, 'age', bins=my_bins, color = 'r')
注意:当我们使用浮点数时,需要np.arange.如果您的数据只是整数,那么您也可以使用范围.
现在您可能还想调整xticks,以便它们也显示bin启动. Pyplot有一个方便的命令:
plt.xticks(range(0, 110, 10))
或者对于后一个例子:
plt.xticks(np.around(my_bins, decimals=1))
可能需要np.around,因为您的数据可能从浮点数开始,这些浮点数在x轴刻度标签上看起来很难看.
另请注意,plt.xticks可以做更多方便的事情,所以你应该去have a loock.
我希望有所帮助!