欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python繪制簡單直方圖的方法

 更新時(shí)間:2022年04月21日 10:21:13   作者:一只會(huì)飛的豬?  
這篇文章主要為大家詳細(xì)介紹了python繪制簡單直方圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

直方圖,又稱質(zhì)量分布圖,是一種統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱條或線段表示數(shù)據(jù)分布情況。用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。直方圖是數(shù)值數(shù)據(jù)分布的精確圖形表示。繪制連續(xù)性的數(shù)據(jù),展示一組或多組數(shù)據(jù)的分布狀況。

直方圖的繪制和條形圖有些相似,需要把plt.bar()修改成plt.hist(),更改圖形的擬合方式,即可繪制直方圖。例如你獲取到了250部電影的數(shù)量,他們的時(shí)長都在80-140分鐘,如何呈現(xiàn)電影的時(shí)長分布情況呢?

老規(guī)矩,上代碼:

'''
? ? 組數(shù)=極差/組距
'''
from matplotlib import pyplot as plt
from matplotlib import font_manager
import random
?
a = [random.randint(80,140) for i in range(250)]
print(a)
print(max(a)-min(a))
?
# 計(jì)算組數(shù)
d = 3 ?# 組距
num_bins = (max(a)-min(a))//d
?
# 設(shè)置圖形大小
plt.figure(figsize=(20, 8), dpi=80)
plt.hist(a, num_bins)
?
# 設(shè)置x軸刻度
plt.xticks(range(min(a), max(a)+d, d))
?
# 設(shè)置網(wǎng)格
plt.grid(alpha=0.4)
plt.show()

運(yùn)行結(jié)果如下圖:

程序分析:通過隨機(jī)數(shù)random.randint()生成250個(gè)80-140的隨機(jī)整數(shù),代表250部電影的時(shí)長。然后要把時(shí)間段分成組,設(shè)置組距d為3,那么(max-min)//d即為分成的組數(shù),然后通過plt.hist()對(duì)組數(shù)和數(shù)據(jù)進(jìn)行擬合。設(shè)置x刻度時(shí),因?yàn)閞ange含頭不含尾,所以最后截止的位置要加一個(gè)組距d,才能顯示完全。可以看出,這個(gè)數(shù)字直方圖可以顯示每個(gè)電影時(shí)長在每個(gè)時(shí)段占得數(shù)目。那么問題又來了,如果想要知道在每個(gè)時(shí)段占總時(shí)段的比例呢,也就是頻率分布直方圖?

so easy! 只需要在plt.hist()里面設(shè)置參數(shù)density=True實(shí)現(xiàn)數(shù)量的頻率化,其余不變。

代碼如下:

'''
? ? 組數(shù)=極差/組距
'''
from matplotlib import pyplot as plt
from matplotlib import font_manager
import random
?
a = [random.randint(80,140) for i in range(250)]
print(a)
print(max(a)-min(a))
?
# 計(jì)算組數(shù)
d = 3 ?# 組數(shù)
num_bins = (max(a)-min(a))//d
?
# 設(shè)置圖形大小
plt.figure(figsize=(20,8),dpi=80)
plt.hist(a,num_bins,density=True) ?# 使用density實(shí)現(xiàn)頻率化
?
# 設(shè)置x軸刻度
plt.xticks(range(min(a),max(a)+d,d))
?
# 設(shè)置網(wǎng)格
plt.grid(alpha=0.4)
plt.show()

運(yùn)行結(jié)果:

顯而易見,每個(gè)時(shí)段的數(shù)目變成了總體的占比,也就是頻率,很好的達(dá)到了想要的效果。

那如果要自己設(shè)置數(shù)據(jù)自己設(shè)置x軸的距離,對(duì)x軸的刻度不均勻劃分呢?

上代碼:

# coding=utf-8
from matplotlib import pyplot as plt
from matplotlib import font_manager
?
interval = [0,5,10,15,20,25,30,35,40,45,60,90,150]
width = [5,5,5,5,5,5,5,5,5,15,30,60]
quantity = [836,2737,3723,3926,3596,1438,3273,642,824,613,215,47]
?
plt.figure(figsize=(20,8),dpi=80)
?
plt.bar(range(len(quantity)),quantity,width=1)
?
# 設(shè)置x軸刻度
_x = [i-0.5 for i in range(13)]
?
plt.xticks(_x, interval)
?
plt.grid(alpha=0.8)
plt.show()

運(yùn)行結(jié)果如下圖:

可以看出來,很簡單,只需要把x軸對(duì)應(yīng)的數(shù)據(jù)設(shè)置好,把對(duì)應(yīng)x軸的刻度設(shè)置好,進(jìn)行數(shù)據(jù)匹配即可。一定要注意,分配的組數(shù)和數(shù)據(jù)個(gè)數(shù)匹配問題。

總結(jié):這篇文章總的講述了一下繪制頻數(shù)直方圖和頻率直方圖的繪制方法,通過圖像進(jìn)行比較,發(fā)現(xiàn)各個(gè)直方圖的優(yōu)缺點(diǎn),以便在工程中進(jìn)行運(yùn)用。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python3.8安裝Pygame教程步驟詳解

    Python3.8安裝Pygame教程步驟詳解

    這篇文章主要介紹了Python3.8安裝Pygame教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • python中matplotlib實(shí)現(xiàn)隨鼠標(biāo)滑動(dòng)自動(dòng)標(biāo)注代碼

    python中matplotlib實(shí)現(xiàn)隨鼠標(biāo)滑動(dòng)自動(dòng)標(biāo)注代碼

    這篇文章主要介紹了python中matplotlib實(shí)現(xiàn)隨鼠標(biāo)滑動(dòng)自動(dòng)標(biāo)注代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python異步編程 使用yield from過程解析

    python異步編程 使用yield from過程解析

    這篇文章主要介紹了python異步編程 使用yield from過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python使用指定端口進(jìn)行http請(qǐng)求的例子

    Python使用指定端口進(jìn)行http請(qǐng)求的例子

    今天小編就為大家分享一篇Python使用指定端口進(jìn)行http請(qǐng)求的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python使用turtle庫與random庫繪制雪花

    python使用turtle庫與random庫繪制雪花

    這篇文章主要為大家詳細(xì)介紹了python使用turtle庫與random庫繪制雪花,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • numpy中三維數(shù)組中加入元素后的位置詳解

    numpy中三維數(shù)組中加入元素后的位置詳解

    今天小編就為大家分享一篇numpy中三維數(shù)組中加入元素后的位置詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python進(jìn)程池實(shí)現(xiàn)的多進(jìn)程文件夾copy器完整示例

    python進(jìn)程池實(shí)現(xiàn)的多進(jìn)程文件夾copy器完整示例

    這篇文章主要介紹了python進(jìn)程池實(shí)現(xiàn)的多進(jìn)程文件夾copy器,結(jié)合完整實(shí)例形式分析了Python基于多進(jìn)程與進(jìn)程池的文件操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-11-11
  • Python二叉樹的定義及常用遍歷算法分析

    Python二叉樹的定義及常用遍歷算法分析

    這篇文章主要介紹了Python二叉樹的定義及常用遍歷算法,結(jié)合實(shí)例形式分析了基于Python的二叉樹定義與先序、中序、后序、層序等遍歷方法,需要的朋友可以參考下
    2017-11-11
  • Python多線程同步Lock、RLock、Semaphore、Event實(shí)例

    Python多線程同步Lock、RLock、Semaphore、Event實(shí)例

    這篇文章主要介紹了Python多線程同步Lock、RLock、Semaphore、Event實(shí)例,Lock & RLock 用來確保多線程多共享資源的訪問,Semaphore用來確保一定資源多線程訪問時(shí)的上限,Event是最簡單的線程間通信的方式,需要的朋友可以參考下
    2014-11-11
  • python簡單實(shí)現(xiàn)基數(shù)排序算法

    python簡單實(shí)現(xiàn)基數(shù)排序算法

    這篇文章主要介紹了python簡單實(shí)現(xiàn)基數(shù)排序算法,僅用4行代碼即可實(shí)現(xiàn)基數(shù)排序算法,非常簡單實(shí)用,需要的朋友可以參考下
    2015-05-05

最新評(píng)論