目錄
1. 直方圖、箱線圖和密度圖
1.1 直方圖
1.2 箱線圖
1.3 密度圖
2. 正態(tài)分布
3. 偏度和峰度
結(jié)論
1. 直方圖、箱線圖和密度圖
直方圖、箱線圖和密度圖是數(shù)據(jù)分析中十分常用的圖形。它們可以幫助我們更好地理解數(shù)據(jù)的分布情況,從而更好地進(jìn)行數(shù)據(jù)分析和處理。在這篇博客中,我們將介紹它們的基本原理、用途以及如何在Python中使用代碼來實現(xiàn)。
1.1 直方圖
直方圖是一種常用的數(shù)據(jù)分布圖,它將數(shù)據(jù)分成若干個區(qū)間,然后統(tǒng)計每個區(qū)間內(nèi)數(shù)據(jù)的個數(shù)。通常情況下,直方圖的橫軸表示數(shù)據(jù)范圍,縱軸表示數(shù)據(jù)出現(xiàn)的頻數(shù)或者頻率。直方圖適用于連續(xù)性數(shù)據(jù)的分布情況。
下面是Python繪制直方圖的代碼,使用的是matplotlib庫:
import matplotlib.pyplot as plt
import numpy as np
# 生成一組隨機數(shù)據(jù)
data = np.random.randn(1000)
# 繪制直方圖
plt.hist(data, bins=30, density=True, alpha=0.5,
histtype='stepfilled', color='steelblue',
edgecolor='none')
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
其中,
np.random.randn(1000)
生成了1000個標(biāo)準(zhǔn)正態(tài)分布的隨機數(shù),plt.hist()
函數(shù)用于繪制直方圖,bins
表示將數(shù)據(jù)分成的區(qū)間數(shù)量,density
表示是否對頻數(shù)進(jìn)行歸一化,alpha
表示透明度,histtype
表示直方圖的類型,color
表示填充顏色,edgecolor
表示邊框顏色。最后使用plt.show()
函數(shù)顯示圖形。在上面的代碼中,我們設(shè)置了
density=True
,這樣直方圖的縱軸就表示概率密度,而不是頻數(shù)。如果需要繪制頻數(shù)直方圖,只需要將density
設(shè)置為False
即可。
1.2 箱線圖
箱線圖是用于展示數(shù)據(jù)分布情況的一種圖形,它由五個數(shù)值點組成:最小值、最大值、中位數(shù)、上四分位數(shù)和下四分位數(shù)。箱子的長度表示數(shù)據(jù)的四分位距,箱子內(nèi)的線表示數(shù)據(jù)的中位數(shù),箱子外的點表示離群值。箱線圖適用于離散性數(shù)據(jù)的分布情況。
下面是Python繪制箱線圖的代碼,使用的是matplotlib庫:
import matplotlib.pyplot as plt
import numpy as np
# 生成一組隨機數(shù)據(jù)
data = np.random.randn(1000)
# 繪制箱線圖
plt.boxplot(data, notch=False, vert=True, showfliers=True,
labels=None, flierprops=None, medianprops=None,
meanprops=None, whiskerprops=None, capprops=None,
boxprops=None)
plt.title('Box Plot')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
其中,data
為一組隨機數(shù)據(jù),plt.boxplot()
函數(shù)用于繪制箱線圖,notch
表示是否繪制缺口,vert
表示箱線圖的方向,showfliers
表示是否繪制離群值,labels
表示箱線圖標(biāo)簽,flierprops
表示離群值的屬性,medianprops
表示中位數(shù)的屬性,meanprops
表示均值的屬性,whiskerprops
表示虛線的屬性,capprops
表示橫線的屬性,boxprops
表示箱體的屬性。最后使用plt.show()
函數(shù)顯示圖形。
在上面的代碼中,我們設(shè)置了showfliers=True
,這樣箱線圖中會顯示離群值。如果需要隱藏離群值,只需要將showfliers
設(shè)置為False
即可
1.3 密度圖
密度圖是用于展示數(shù)據(jù)分布情況的一種圖形,它是對直方圖的一種平滑版本。它的縱軸并不是頻數(shù)或頻率,而是概率密度。密度圖適用于連續(xù)性數(shù)據(jù)的分布情況。密度圖也可以配合直方圖一起繪制,以更好地理解數(shù)據(jù)的分布情況。
下面是Python繪制密度圖的代碼,使用的是seaborn庫:
import seaborn as sns
import numpy as np
# 生成一組隨機數(shù)據(jù)
data = np.random.randn(1000)
# 繪制密度圖
sns.kdeplot(data, shade=True)
# 顯示圖形
plt.title('Density Plot')
plt.xlabel('Value')
plt.ylabel('Density')
plt.show()
其中,data
為一組隨機數(shù)據(jù),sns.kdeplot()
函數(shù)用于繪制密度圖,shade
表示是否填充顏色。最后使用plt.show()
函數(shù)顯示圖形。
密度圖的優(yōu)點是可以更準(zhǔn)確地表達(dá)數(shù)據(jù)分布情況,而不會受到分組的影響。同時,使用密度圖可以更好地理解數(shù)據(jù)分布的形狀,例如是否對稱、是否有峰值等等。
2. 正態(tài)分布
正態(tài)分布是一種常見的概率分布。在實際的數(shù)據(jù)分析中,很多數(shù)據(jù)都符合正態(tài)分布。因此,理解正態(tài)分布的基本原理和性質(zhì)對于數(shù)據(jù)分析非常重要。在這篇博客中,我們將介紹正態(tài)分布的基本概念、性質(zhì)和應(yīng)用,并且使用Python代碼來生成和可視化正態(tài)分布。
下面是Python繪制正態(tài)分布圖的代碼,使用的是matplotlib庫:
import matplotlib.pyplot as plt
import numpy as np
# 生成一組符合標(biāo)準(zhǔn)正態(tài)分布的隨機數(shù)據(jù)
data = np.random.randn(1000)
# 繪制正態(tài)分布圖
plt.hist(data, bins=30, density=True, alpha=0.5,
histtype='stepfilled', color='steelblue',
edgecolor='none')
# 繪制正態(tài)分布曲線
mu, sigma = data.mean(), data.std()
x = np.linspace(mu - 3 * sigma, mu + 3 * sigma, 100)
plt.plot(x, 1/(sigma * np.sqrt(2 * np.pi)) * np.exp(- (x - mu)**2 / (2 * sigma**2)),
linewidth=2, color='r')
plt.title('Normal Distribution')
plt.xlabel('Value')
plt.ylabel('Probability Density')
plt.show()
其中,np.random.randn(1000)
生成了1000個標(biāo)準(zhǔn)正態(tài)分布的隨機數(shù),使用plt.hist()
函數(shù)繪制數(shù)據(jù)的直方圖,bins
表示將數(shù)據(jù)分成的區(qū)間數(shù)量,density
表示是否對頻數(shù)進(jìn)行歸一化,alpha
表示透明度,histtype
表示直方圖的類型,color
表示填充顏色,edgecolor
表示邊框顏色。使用plt.plot()
函數(shù)繪制正態(tài)分布曲線,mu
和sigma
分別表示數(shù)據(jù)的均值和標(biāo)準(zhǔn)差,x
為一組等間隔的數(shù)值,1/(sigma * np.sqrt(2 * np.pi)) * np.exp(- (x - mu)**2 / (2 * sigma**2))
表示標(biāo)準(zhǔn)正態(tài)分布的概率密度函數(shù)。最后使用plt.show()
函數(shù)顯示圖形。
在上面的代碼中,我們將正態(tài)分布曲線繪制在了直方圖上方,這樣可以更好地描述數(shù)據(jù)分布的形態(tài)。
3. 偏度和峰度
偏度和峰度是用于描述數(shù)據(jù)分布形態(tài)的兩個重要指標(biāo)。通過偏度和峰度的計算,我們可以更準(zhǔn)確地描述數(shù)據(jù)的分布情況,從而更好地進(jìn)行數(shù)據(jù)分析。在這篇博客中,我們將介紹偏度和峰度的概念、計算方法和應(yīng)用,并且使用Python代碼來計算和可視化偏度和峰度。
偏度和峰度是用于描述數(shù)據(jù)分布形態(tài)的兩個重要指標(biāo)。偏度描述的是數(shù)據(jù)分布的不對稱程度,通常用于判斷數(shù)據(jù)分布是否為正態(tài)分布。如果偏度為0,則數(shù)據(jù)分布為對稱分布;如果偏度大于0,則數(shù)據(jù)分布右偏;如果偏度小于0,則數(shù)據(jù)分布左偏。峰度描述的是數(shù)據(jù)分布的峰態(tài),即分布的陡峭程度。峰度為0表示正態(tài)分布,峰度大于0表示分布比正態(tài)分布更陡峭,峰度小于0表示分布比正態(tài)分布更平緩。
import numpy as np
from scipy.stats import kurtosis, skew
import matplotlib.pyplot as plt
# 生成一組隨機數(shù)據(jù)
data = np.random.randn(1000)
# 計算偏度和峰度
sk = skew(data)
ku = kurtosis(data)
# 繪制直方圖
plt.hist(data, bins=30, density=True, alpha=0.5,
histtype='stepfilled', color='steelblue',
edgecolor='none')
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.text(1, 0.8, 'Skewness={:.2f}'.format(sk))
plt.text(1, 0.7, 'Kurtosis={:.2f}'.format(ku))
plt.show()
其中,skew(data)
和kurtosis(data)
函數(shù)分別用于計算數(shù)據(jù)的偏度和峰度。最后使用plt.text()
函數(shù)在圖形上方添加偏度和峰度的數(shù)值。
在上面的代碼中,我們使用了scipy
庫中的kurtosis
和skew
函數(shù)來計算偏度和峰度。如果需要計算樣本的偏度和峰度,可以使用bias=False
參數(shù)。
通過偏度和峰度的計算,我們可以更準(zhǔn)確地描述數(shù)據(jù)的分布情況,從而更好地進(jìn)行數(shù)據(jù)分析。
結(jié)論
數(shù)據(jù)分布的可視化是數(shù)據(jù)分析中非常重要的一部分。通過本篇博客,我們介紹了直方圖、箱線圖、密度圖、正態(tài)分布、偏度和峰度的基本原理、用途以及如何在Python中使用代碼來實現(xiàn)。希望讀者可以通過本篇博客更好地理解數(shù)據(jù)的分布情況,從而更好地進(jìn)行數(shù)據(jù)分析。文章來源:http://www.zghlxwxcb.cn/news/detail-703725.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-703725.html
到了這里,關(guān)于python數(shù)據(jù)可視化玩轉(zhuǎn)Matplotlib直方圖、箱型圖、密度圖、正態(tài)分布、偏度和峰度的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!