唐山制作网站的,中国建设银行官方网站 认证,泰安法拍房信息网,临夏州住房和城乡建设局网站python的hist有一个bug#xff0c;之前一直没有解决。绘制直方图的时候#xff0c;往往出现两组数据由于分布不一样#xff0c;#xff0c;导致出来的图片中#xff0c;虽然是一样数目的bins#xff0c;但是bin的宽窄不同。而我想得到的是#xff0c;#xff0c;虽然数…python的hist有一个bug之前一直没有解决。绘制直方图的时候往往出现两组数据由于分布不一样导致出来的图片中虽然是一样数目的bins但是bin的宽窄不同。而我想得到的是虽然数据分布不同我希望两组数据共享同样宽度的bin希望每一个bin是一样的宽度一方面好看另一方面这样才对啊如何解决呢直方图使用distplotdistplot(seaborn)是加强版的hist(pandas)都是做直方图先来个示例代码from numpy.random import randnimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plta np.random.rand(200)*50b np.random.rand(200)*100fig, ax plt.subplots()sns.distplot(a, bins10, axax, kdeFalse, colorblue)sns.distplot(b, bins10, axax, kdeFalse, colorred)ax.set_xlim([-10,110])image很明显看得出上图中虽然a和b的bins都指定为10但是绘制在同一张图上的时候python实际是使用每一组数据的最小值和最大值之间的范围除以bins得到各自bins的范围。解决方法很简单指定bin的宽度就可以了可以用range传入或者直接给出一个列表range范围划重点 注意这一点只有这一点binsrange(0,110,10)把这个加入代码的bins中就可以了。fig, ax plt.subplots()binsrange(0,110,10)sns.distplot(a, bins, axax, kdeFalse, colorblue)sns.distplot(b, bins, axax, kdeFalse, colorred)ax.set_xlim([-10,110])image可以看出加上这个binsrange(0,110,10)的参数之后得到了我们想看到的结果bin的宽度完全一致了好我们这次的小tip就分享完了如果有帮助希望可以点个赞赏哦或者右边点个喜欢吧其实hist还有一个小bug也是挺头疼的就是norm后纵轴不是百分比那么我想要百分比怎么做呢下次再分享吧