Python利用 matplotlib 繪制直方圖
復(fù)習(xí)回顧:
經(jīng)過前面對 matplotlib 模塊從底層架構(gòu)、基本繪制步驟等學(xué)習(xí),我們已經(jīng)學(xué)習(xí)了折線圖、柱狀圖的繪制方法。
matplotlib 模塊基礎(chǔ):對matplotlib 模塊常用方法進(jìn)行學(xué)習(xí)
matplotlib 模塊底層原理:學(xué)習(xí)matplotlib 模塊腳本層、美工層及后端層
matplotlib 繪制折線圖:總結(jié)折線圖相關(guān)屬性和方法
matplotlib 繪制柱狀圖:總結(jié)柱狀圖相關(guān)屬性和方法
在分析數(shù)據(jù)的時(shí)候,我們會根據(jù)數(shù)據(jù)的特點(diǎn)來選擇對應(yīng)圖表來展示,需要表示質(zhì)量這一概念,需要用直方圖。
1. 直方圖概述
1.1什么是直方圖?
- 直方圖是一種可視化表示數(shù)據(jù)在連續(xù)間隔或者特定時(shí)間段內(nèi)容的分布情況
- 直方圖又稱為質(zhì)量分布圖,屬于條行圖的一種
- 直方圖x軸表示數(shù)據(jù)類型,縱軸表示分布情況,每個(gè)數(shù)據(jù)寬度可以任意變化
1.2直方圖使用場景
- 直方圖用于概率分布,展示一組數(shù)據(jù)在指定范圍內(nèi)的出現(xiàn)概率
- 可以用于展示數(shù)據(jù)分布頻率情況
- 用于眾數(shù)、中位數(shù)的位置
- 關(guān)注數(shù)據(jù)存在缺口或者異常值
1.3直方圖繪制步驟
- 導(dǎo)入matplotlib.pyplot模塊
- 準(zhǔn)備數(shù)據(jù),可以使用numpy/pandas整理數(shù)據(jù)
- 調(diào)用pyplot.hist()繪制直方圖
1.4案例展示
本次案例我們來分析公司員工的身高分布情況
案例數(shù)據(jù)準(zhǔn)備,使用numpy隨機(jī)生成200個(gè)升高數(shù)據(jù)
import numpy as np x_value = np.random.randint(140,180,200)
繪制直方圖:
import matplotlib.pyplot as plt plt.hist(x_value,bins=10) plt.title("data analyze") plt.xlabel("height") plt.ylabel("rate") plt.show()
2. 直方圖屬性
2.1設(shè)置顏色
- 設(shè)置長條形顏色關(guān)鍵字:facecolor
- 設(shè)置邊框的顏色關(guān)鍵字:edgecolor
顏色選擇值:
- 使用顏色的英語單詞如紅色"red",黃色"yellow"
- 使用顏色簡稱:紅色"r",藍(lán)色"b"
- 使用rgb:格式(r,g,b),取值范圍:0~1
2.2設(shè)置長條形數(shù)目
- 關(guān)鍵字:bins
- 可選項(xiàng),默認(rèn)為10
2.3設(shè)置透明度
- 關(guān)鍵字:alpha
- 默認(rèn)為0,取值范圍為0~1
2.4設(shè)置樣式
- 關(guān)鍵字:histtype
- 取值說
屬性值 | 說明 |
---|---|
'bar' | 柱狀形數(shù)據(jù)并排,默認(rèn)值 |
'barstacked' | 柱狀形數(shù)據(jù)重疊并排 |
'step' | 柱狀形顏色不填充 |
'stepfilled' | 填充的線性 |
我們對第一節(jié)直方圖添加柱狀形不填充,邊框顏色為紅色
plt.hist(x_value,bins=10,edgecolor="r",histtype="step")
邊框設(shè)置為紅色,透明度為0.5
plt.hist(x_value,bins=10,edgecolor="r",histtype="bar",alpha=0.5)
3. 添加折線直方圖
在直方圖中,我們也可以加一個(gè)折線圖,輔助我們查看數(shù)據(jù)變化情況
- 首先通過pyplot.subplot()創(chuàng)建Axes對象
- 通過Axes對象調(diào)用hist()方法繪制直方圖,返回折線圖所需要的下x,y數(shù)據(jù)
- 然后Axes對象調(diào)用plot()繪制折線圖
- 我們對第一節(jié)代碼進(jìn)行改造一下
fig,ax = plt.subplots() n,bins_num,pat = ax.hist(x_value,bins=10,alpha=0.75) ax.plot(bins_num[:10],n,marker = 'o',color="yellowgreen",linestyle="--")
4. 堆疊直方圖
我們有時(shí)候會對吧同樣數(shù)據(jù)范圍情況下,對比兩組不同對象群體收集的數(shù)據(jù)差異
準(zhǔn)備兩組數(shù)據(jù):
import numpy as np x_value = np.random.randint(140,180,200) x2_value = np.random.randint(140,180,200)
- 直方圖屬性data:以列表的形式傳入兩組數(shù)據(jù)
- 設(shè)置直方圖stacked:為True,允許數(shù)據(jù)覆蓋
plt.hist([x_value,x2_value],bins=10,stacked=True)
5. 不等距直方圖
我們上述繪制的直方圖都是等距的,我們可以指定一組數(shù)據(jù)傳入bins屬性
- bins 關(guān)鍵字:指定直方圖的柱狀形個(gè)數(shù)
- 更改上述的代碼后,看看效果吧
bin_num = [140,155,160,170,175,180] plt.hist([x_value,x2_value],bins=bin_num,alpha=0.75,stacked=True)
6. 多類直方圖
我們在使用直方圖查查看數(shù)據(jù)的頻率時(shí),有時(shí)候會查看多種類型數(shù)據(jù)出現(xiàn)的頻率。
這時(shí)候我們可以以列表的形式傳入多種數(shù)據(jù)給hist()方法的x數(shù)據(jù)
x_value = [np.random.randint(140,180,i) for i in [100,200,300]] plt.hist(x_value,bins=10,edgecolor="r",histtype="bar",alpha=0.5,label=["A公司","B公司","C公司"])
總結(jié):
我們對matplotlib模塊中詳細(xì)學(xué)習(xí)繪制各種直方圖標(biāo)相關(guān)屬性和方法。在需要查看數(shù)據(jù)分布頻率時(shí),我們可以使用hist()方法繪制直方圖,同時(shí)也可以添加折線來輔助查看
到此這篇關(guān)于Python利用 matplotlib 繪制直方圖的文章就介紹到這了,更多相關(guān)Python matplotlib 模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于python學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11Pytorch建模過程中的DataLoader與Dataset示例詳解
這篇文章主要介紹了Pytorch建模過程中的DataLoader與Dataset,同時(shí)PyTorch針對不同的專業(yè)領(lǐng)域,也提供有不同的模塊,例如?TorchText,?TorchVision,?TorchAudio,這些模塊中也都包含一些真實(shí)數(shù)據(jù)集示例,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-01-01詳解?PyTorch?Lightning模型部署到生產(chǎn)服務(wù)中
這篇文章主要為大家介紹了如何將PyTorch?Lightning模型部署到生產(chǎn)服務(wù)中的詳細(xì)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09pytorch geometric的GNN、GCN的節(jié)點(diǎn)分類方式
這篇文章主要介紹了pytorch geometric的GNN、GCN的節(jié)點(diǎn)分類方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12OpenCV清除小面積連通域的實(shí)現(xiàn)方法
本文主要介紹了OpenCV清除小面積連通域的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09python實(shí)現(xiàn)自動搶課腳本的示例代碼
本文主要介紹了python實(shí)現(xiàn)自動搶課腳本的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12