python 绘图 hist bin参数_Python-hist,distplot bin宽度不一致问题的解决方案
python的hist有一個bug,之前一直沒有解決。繪制直方圖的時候,往往出現兩組數據由于分布不一樣,,導致出來的圖片中,雖然是一樣數目的bins,但是bin的寬窄不同。
而我想得到的是,,
雖然數據分布不同,我希望兩組數據共享同樣寬度的bin,希望每一個bin是一樣的寬度
一方面,好看
另一方面,這樣才對啊
如何解決呢?
直方圖使用distplot
distplot(seaborn)是加強版的hist(pandas),都是做直方圖
先來個示例代碼:
from numpy.random import randn
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
a = np.random.rand(200)*50
b = np.random.rand(200)*100
fig, ax = plt.subplots()
sns.distplot(a, bins=10, ax=ax, kde=False, color="blue")
sns.distplot(b, bins=10, ax=ax, kde=False, color="red")
ax.set_xlim([-10,110])
image
很明顯看得出上圖中,雖然a和b的bins都指定為10,但是繪制在同一張圖上的時候,python實際是使用每一組數據的最小值和最大值之間的范圍除以bins,得到各自bins的范圍。
解決方法:
很簡單:指定bin的寬度就可以了,可以用range傳入,或者直接給出一個列表,range范圍
劃重點 ,注意這一點,只有這一點
bins=range(0,110,10)
把這個加入代碼的bins中就可以了。
fig, ax = plt.subplots()
bins=range(0,110,10)
sns.distplot(a, bins, ax=ax, kde=False, color="blue")
sns.distplot(b, bins, ax=ax, kde=False, color="red")
ax.set_xlim([-10,110])
image
可以看出加上這個bins=range(0,110,10)的參數之后,得到了我們想看到的結果,bin的寬度完全一致了!
好,我們這次的小tip就分享完了,如果有幫助,希望可以點個贊賞哦,或者右邊點個喜歡吧!
其實hist還有一個小bug,也是挺頭疼的,,就是norm后,縱軸不是百分比,那么我想要百分比怎么做呢?下次再分享吧
總結
以上是生活随笔為你收集整理的python 绘图 hist bin参数_Python-hist,distplot bin宽度不一致问题的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 监控mysql锁定状态_企业实战Mysq
- 下一篇: 32f407tim4时钟源频率_慎重选择