Python繪制頻率分布直方圖的示例
項(xiàng)目中在前期經(jīng)常要看下數(shù)據(jù)的分布情況,這對(duì)于探究數(shù)據(jù)規(guī)律非常有用。概率分布表示樣本數(shù)據(jù)的模樣,長(zhǎng)的好不好看如果有圖像展示出來(lái)就非常完美了,使用Python繪制頻率分布直方圖非常簡(jiǎn)潔,因?yàn)橛玫念l次非常高,這里記錄下來(lái)。還是Python大法好,代碼簡(jiǎn)潔不拖沓~
如果數(shù)據(jù)取值的范圍跨度不大,可以使用等寬區(qū)間來(lái)展示直方圖,這也是最常見(jiàn)的一種;如果數(shù)據(jù)取值范圍比較野,也可以自定義區(qū)間端點(diǎn),繪制圖像,下面分兩種情況展示
1. 區(qū)間長(zhǎng)度相同繪制直方圖
#-*- encoding=utf-8 -*- import datetime import numpy as np import matplotlib.pyplot as plt import matplotlib zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc') # 按照固定區(qū)間長(zhǎng)度繪制頻率分布直方圖 # bins_interval 區(qū)間的長(zhǎng)度 # margin 設(shè)定的左邊和右邊空留的大小 def probability_distribution(data, bins_interval=1, margin=1): bins = range(min(data), max(data) + bins_interval - 1, bins_interval) print(len(bins)) for i in range(0, len(bins)): print(bins[i]) plt.xlim(min(data) - margin, max(data) + margin) plt.title("probability-distribution") plt.xlabel('Interval') plt.ylabel('Probability') plt.hist(x=data, bins=bins, histtype='bar', color=['r']) plt.show()
2. 區(qū)間長(zhǎng)度不同繪制直方圖
#-*- encoding=utf-8 -*- import datetime import numpy as np import matplotlib.pyplot as plt import matplotlib zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc' # 自己給定區(qū)間,小于區(qū)間左端點(diǎn)和大于區(qū)間右端點(diǎn)的統(tǒng)一做處理,對(duì)于數(shù)據(jù)分布不均很的情況處理較友好 # bins 自己設(shè)定的區(qū)間數(shù)值列表 # margin 設(shè)定的左邊和右邊空留的大小 # label 右上方顯示的圖例文字 """e import numpy as np data = np.random.normal(0, 1, 1000) bins = np.arange(-5, 5, 0.1) probability_distribution_extend(data=data, bins=bins) """ def probability_distribution_extend(data, bins, margin=1, label='Distribution'): bins = sorted(bins) length = len(bins) intervals = np.zeros(length+1) for value in data: i = 0 while i < length and value >= bins[i]: i += 1 intervals[i] += 1 intervals = intervals / float(len(data)) plt.xlim(min(bins) - margin, max(bins) + margin) bins.insert(0, -999) plt.title("probability-distribution") plt.xlabel('Interval') plt.ylabel('Probability') plt.bar(bins, intervals, color=['r'], label=label) plt.legend() plt.show()
Case示例
if __name__ == '__main__': data = [1,4,6,7,8,9,11,11,12,12,13,13,16,17,18,22,25] probability_distribution(data=data, bins_interval=5,margin=0)
效果如下圖
以上這篇Python繪制頻率分布直方圖的示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 教你利用Python玩轉(zhuǎn)histogram直方圖的五種方法
- 詳解用Python為直方圖繪制擬合曲線的兩種方法
- 詳解python OpenCV學(xué)習(xí)筆記之直方圖均衡化
- python數(shù)字圖像處理實(shí)現(xiàn)直方圖與均衡化
- python繪制直方圖和密度圖的實(shí)例
- python matplotlib庫(kù)直方圖繪制詳解
- Python利用 matplotlib 繪制直方圖
- Python Opencv中用compareHist函數(shù)進(jìn)行直方圖比較對(duì)比圖片
- opencv python統(tǒng)計(jì)及繪制直方圖的方法
- python繪制直方圖的方法
相關(guān)文章
Python pip安裝lxml出錯(cuò)的問(wèn)題解決辦法
這篇文章主要介紹了Python pip安裝lxml出錯(cuò)的問(wèn)題解決辦法的相關(guān)資料,需要的朋友可以參考下2017-02-02使用pyqt5 tablewidget 單元格設(shè)置正則表達(dá)式
今天小編就為大家分享一篇使用pyqt5 tablewidget 單元格設(shè)置正則表達(dá)式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12詳解Python如何利用pdfplumber提取PDF中的表格
pdfplumber 是一個(gè)開(kāi)源的 python 工具庫(kù) ,它可以輕松的獲取 PDF 文本內(nèi)容、標(biāo)題、表格、尺寸等各種信息,今天來(lái)介紹如何使用它來(lái)提取 PDF 中的表格,文中通過(guò)代碼和圖片講解的非常詳細(xì),需要的朋友可以參考下2024-04-04Python按條件刪除Excel表格數(shù)據(jù)的方法(示例詳解)
本文介紹基于Python語(yǔ)言,讀取Excel表格文件,基于我們給定的規(guī)則,對(duì)其中的數(shù)據(jù)加以篩選,將不在指定數(shù)據(jù)范圍內(nèi)的數(shù)據(jù)剔除,保留符合我們需要的數(shù)據(jù)的方法,感興趣的朋友跟隨小編一起看看吧2024-08-08tensorflow 恢復(fù)指定層與不同層指定不同學(xué)習(xí)率的方法
今天小編就為大家分享一篇tensorflow 恢復(fù)指定層與不同層指定不同學(xué)習(xí)率的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07詳解用Python處理HTML轉(zhuǎn)義字符的5種方式
本文介紹了詳解用Python處理HTML轉(zhuǎn)義字符的5種方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12