Python繪制直方圖的示例代碼
初步
對(duì)于大量樣本來(lái)說(shuō),如果想快速獲知其分布特征,最方便的可視化方案就是直方圖,即統(tǒng)計(jì)落入不同區(qū)間中的樣本個(gè)數(shù)。
以正態(tài)分布為例
import numpy as np import matplotlib.pyplot as plt xs = np.random.normal(0, 1, size=(5000)) fig = plt.figure() for i,b in enumerate([10, 50, 100, 200],1): ax = fig.add_subplot(2,2,i) plt.hist(xs, bins=b) plt.show()
其中bins
參數(shù)用于調(diào)控區(qū)間個(gè)數(shù),出圖結(jié)果如下
參數(shù)
直方圖函數(shù)的定義如下
hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)
除了x
和bins
之外,其他參數(shù)含義為
- range 繪圖區(qū)間,默認(rèn)將樣本所有范圍納入其中
- density 為
True
時(shí),縱坐標(biāo)單位是占比 - weights 與
x
個(gè)數(shù)相同,表示每個(gè)值所占權(quán)重 - cumulative 為
True
時(shí),將采取累加模式 - bottom y軸起點(diǎn),有了這個(gè),可以對(duì)直方圖進(jìn)行堆疊
- histtype 繪圖類型
- align 對(duì)其方式,可選left, mid, right三種,代表左中右
- oritentation 繪制方向,可選vertical和horizontal兩種
- rwitdth 數(shù)據(jù)條寬度
- log 為
True
時(shí),開(kāi)啟對(duì)數(shù)坐標(biāo) - color, label 顏色,標(biāo)簽
- stacked
繪圖類型
histtype
共有4個(gè)選項(xiàng),分別是bar, barstacked, step以及stepfilled,其中barstacked
表示堆疊,下面對(duì)另外三種參數(shù)進(jìn)行演示
types = ['bar', 'step', 'stepfilled'] fig = plt.figure() for i,t in enumerate(types,1): ax = fig.add_subplot(1,3,i) plt.hist(xs, bins=50, histtype=t, rwidth=0.5) plt.show()
效果如下
堆疊直方圖,就是把多個(gè)直方圖疊在一起
bins = [10, 30, 100] ws = [1, 0.7, 0.5] for b,w in zip(bins, ws): print(b,w) plt.hist(xs, bins=b, density=True, histtype='barstacked', rwidth = w, alpha=w) plt.show()
效果如下
多組數(shù)據(jù)直方圖對(duì)比
直方圖中設(shè)置了rwidth
選項(xiàng),這意味著可以通過(guò)合理安排數(shù)據(jù)條寬度,以實(shí)現(xiàn)多組數(shù)據(jù)直方圖在一個(gè)圖像中更加
N = 10000 labels = ["norm", "power", "poisson"] data = np.array([ np.random.normal(0, 1, size=N)**2, np.random.power(5, size=N), np.random.uniform(0, 1, size=N) ]).T plt.hist(data, 50, density=True, range=(0,1), label=labels) plt.legend() plt.show()
其中,data
為3組統(tǒng)計(jì)數(shù)據(jù),hist
函數(shù)會(huì)自行規(guī)劃畫(huà)布,效果如下
到此這篇關(guān)于Python繪制直方圖的示例代碼的文章就介紹到這了,更多相關(guān)Python繪制直方圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python密碼學(xué)對(duì)稱和非對(duì)稱密碼教程
這篇文章主要為大家介紹了python密碼學(xué)對(duì)稱和非對(duì)稱密碼教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05python 出現(xiàn)SyntaxError: non-keyword arg after keyword arg錯(cuò)誤解決辦
這篇文章主要介紹了python 出現(xiàn)SyntaxError: non-keyword arg after keyword arg錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下2017-02-02Python version 2.7 required, which was not found in the regi
這篇文章主要介紹了安裝PIL庫(kù)時(shí)提示錯(cuò)誤Python version 2.7 required, which was not found in the registry問(wèn)題的解決方法,需要的朋友可以參考下2014-08-08Python TestSuite生成測(cè)試報(bào)告過(guò)程解析
這篇文章主要介紹了Python TestSuite生成測(cè)試報(bào)告過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Python實(shí)戰(zhàn)小項(xiàng)目之身份證信息校驗(yàn)
讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python做一個(gè)身份證信息校驗(yàn)的小項(xiàng)目,大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-10-10