python如何畫直方圖

wh7577發表於2021-09-11

matplotlib.pyplot直方圖畫起來還是非常方便的,思路還是準備好資料,然後設定引數即可。

python如何畫直方圖

直方圖(Histogram)又稱質量分佈圖。是一種統計報告圖,由一系列高度不等的縱向條紋或線段表示資料分佈的情況。 一般用橫軸表示資料型別,縱軸表示分佈情況。 

直方圖是數值資料分佈的精確圖形表示。 這是一個連續變數(定量變數)的機率分佈的估計,並且被卡爾·皮爾遜(Karl Pearson)首先引入。它是一種條形圖。 為了構建直方圖,第一步是將值的範圍分段,即將整個值的範圍分成一系列間隔,然後計算每個間隔中有多少值。 這些值通常被指定為連續的,不重疊的變數間隔。 間隔必須相鄰,並且通常是(但不是必須的)相等的大小。

直方圖是呼叫的matplotlib.pyplot.hist模組

matplotlib.pyplot.hist的引數:

matplotlib.pyplot.hist(x,bins = None,range = None,density = None,weights = None,cumulative = False,bottom = None,
histtype =’bar’,align =’mid’,orientation =’vertical’,rwidth = None,log = False,color = None,label = None,
stacked = False,normed = None,hold = None,data = None,** kwargs )

hist的引數詳解

x : (n,)陣列或序列(n,)陣列

輸入值,這需要單個陣列或不需要具有相同長度的陣列序列

bins : 整數或序列或’auto’可選,預設是沒有

如果一個整數,bins +1,則計算並返回bin邊緣,與之一致numpy.histogram()

range : 元組或沒有可選的,預設是沒有

箱子的上下範圍。上下異常值將被忽略。如果沒有提供,範圍是(x.min(),x.max())。如果箱子是一個序列沒有影響範圍 
如果指定箱是一個序列或範圍,自動定量是基於指定本範圍而不是x的範圍。

density :可選布林型別

如果這是真的,返回第一個元素的元組將計數歸一化形成一個機率密度,即。,面積(或積分)根據直方圖將之和為1。這是透過將整個計算
觀測的數量乘以本寬度,而不是除以總數量的觀察。如果堆也是真的,直方圖之和是標準化為1。 
預設是沒有賦範和密度。如果設定,那麼將使用這個值。如果沒有設定,那麼引數將被視為錯誤的

weights:可選擇相同的資料或者沒有

陣列的重量、形狀相同的x。每個值x只貢獻相關重量對箱數(而不是1)。如果賦範或密度是真的,權重歸一化,這樣的積分密度範圍是1。

cumulative:可選布林型別

如果True,則計算直方圖,其中每個bin給出該bin中的計數加上較小值的所有bin。最後一個bin給出了資料點的總數。如果賦範或密度 
也True然後直方圖歸一化,使得最後倉等於1。如果累計計算結果為小於0(例如,-1),累積的方向被反轉。在這種情況下,如果賦範
和/或密度也是True,則直方圖歸一化,使得第一倉等於1。 
預設是 False

bottom:相同陣列,標量或者沒有

每個倉的底部基線的位置。如果是標量,則每個bin的基線移動相同的量。如果是一個陣列,每個bin都是獨立移動的,底部的長度必須
與bin的數量相匹配。如果為None,則預設為0。預設是 None

histtype : {‘bar’,’barstacked’,’step’,’stepfilled’},可選

要繪製的直方圖的型別 
‘bar’是傳統的條形直方圖。如果給出多個資料,則條並排排列。 
‘barstacked’是一種條形直方圖,其中多個資料堆疊在一起。 
‘step’生成一個預設未填充的線圖。 
‘stepfilled’生成一個預設填充的線圖。 
預設為’bar’

align : {‘left’,’mid’,’right’},可選

控制直方圖的繪製方式。 
‘left’:條形圖位於左邊框邊緣的中心。 
‘mid’:條在bin邊緣之間居中。 
‘right’:條形圖位於右側邊框的中心。 
預設為’mid’

orientation : {‘horizontal’,’vertical’},可選

如果是’horizontal’,barh將用於條形直方圖,底部 kwarg將用於左邊緣

log : 布林值,可選

如果True,直方圖軸將設定為對數刻度。如果 log是True且x是1D陣列,則將過濾掉空箱,並且僅 返回非空。(n, bins, patches).
預設是 False

color :顏色

顏色規格或顏色規格序列,每個資料集一個。Default(None)使用標準線顏色序列.預設是 None

例項:

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(19680801)
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, density=True, facecolor='g', alpha=0.75)

plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.title('Histogram of IQ')
plt.text(60, .025, r'$mu=100, sigma=15$')
plt.axis([40, 160, 0, 0.03])
plt.grid(True)
plt.show()

效果圖:

python如何畫直方圖

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2480/viewspace-2836611/,如需轉載,請註明出處,否則將追究法律責任。

相關文章