溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python數(shù)據(jù)可視化實(shí)例應(yīng)用分析

發(fā)布時(shí)間:2023-04-26 14:02:39 來源:億速云 閱讀:112 作者:zzz 欄目:編程語言

本篇內(nèi)容介紹了“Python數(shù)據(jù)可視化實(shí)例應(yīng)用分析”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

一、數(shù)據(jù)可視化與探索圖

數(shù)據(jù)可視化是指用圖形或表格的方式來呈現(xiàn)數(shù)據(jù)。圖表能夠清楚地呈現(xiàn)數(shù)據(jù)性質(zhì), 以及數(shù)據(jù)間或?qū)傩蚤g的關(guān)系,可以輕易地讓人看圖釋義。用戶通過探索圖(Exploratory Graph)可以了解數(shù)據(jù)的特性、尋找數(shù)據(jù)的趨勢(shì)、降低數(shù)據(jù)的理解門檻。

二、常見的圖表實(shí)例

本章主要采用 Pandas 的方式來畫圖,而不是使用 Matplotlib 模塊。其實(shí) Pandas 已經(jīng)把 Matplotlib 的畫圖方法整合到 DataFrame 中,因此在實(shí)際應(yīng)用中,用戶不需要直接引用 Matplotlib 也可以完成畫圖的工作。

1.折線圖

折線圖(line chart)是最基本的圖表,可以用來呈現(xiàn)不同欄位連續(xù)數(shù)據(jù)之間的關(guān)系。繪制折線圖使用的是 plot.line() 的方法,可以設(shè)置顏色、形狀等參數(shù)。在使用上,拆線圖繪制方法完全繼承了 Matplotlib 的用法,所以程序最后也必須調(diào)用 plt.show() 產(chǎn)生圖,如圖8.4 所示。

df_iris[['sepal length (cm)']].plot.line()
plt.show()
ax = df[['sepal length (cm)']].plot.line(color='green',title="Demo",style='--')
ax.set(xlabel="index", ylabel="length")
plt.show()

Python數(shù)據(jù)可視化實(shí)例應(yīng)用分析

2.散布圖

散布圖(Scatter Chart)用于檢視不同欄位離散數(shù)據(jù)之間的關(guān)系。繪制散布圖使用的是 df.plot.scatter(),如圖8.5所示。

df = df_iris
df.plot.scatter(x='sepal length (cm)', y='sepal width (cm)')
from matplotlib import cm
cmap = cm.get_cmap('Spectral')
df.plot.scatter(x='sepal length (cm)',
y='sepal width (cm)',
s=df[['petal length (cm)']]*20,
c=df['target'],
cmap=cmap,
title='different circle size by petal length (cm)')

Python數(shù)據(jù)可視化實(shí)例應(yīng)用分析

3.直方圖、長條圖

直方圖(Histogram Chart)通常用于同一欄位,呈現(xiàn)連續(xù)數(shù)據(jù)的分布狀況,與直方圖類似的另一種圖是長條圖(Bar Chart),用于檢視同一欄位,如圖 8.6 所示。

df[['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)','petal width (cm)']].plot.hist()
2 df.target.value_counts().plot.bar()

Python數(shù)據(jù)可視化實(shí)例應(yīng)用分析

4. 圓餅圖、箱形圖

圓餅圖(Pie Chart)可以用于檢視同一欄位各類別所占的比例,而箱形圖(Box Chart)則用于檢視同一欄位或比較不同欄位數(shù)據(jù)的分布差異,如圖 8.7 所示。

df.target.value_counts().plot.pie(legend=True)
df.boxplot(column=['target'],?gsize=(10,5))

Python數(shù)據(jù)可視化實(shí)例應(yīng)用分析

數(shù)據(jù)探索實(shí)戰(zhàn)分享

本節(jié)利用兩個(gè)真實(shí)的數(shù)據(jù)集實(shí)際展示數(shù)據(jù)探索的幾種手法。

一、2013年美國社區(qū)調(diào)查

在美國社區(qū)調(diào)查(American Community Survey)中,每年約有 350 萬個(gè)家庭被問到關(guān)于他們是誰及他們?nèi)绾紊畹脑敿?xì)問題。調(diào)查的內(nèi)容涵蓋了許多主題,包括祖先、教育、工作、交通、互聯(lián)網(wǎng)使用和居住。

先觀察數(shù)據(jù)的樣子與特性,以及每個(gè)欄位代表的意義、種類和范圍。

# 讀取數(shù)據(jù)
df = pd.read_csv("./ss13husa.csv")
# 欄位種類數(shù)量
df.shape
# (756065,231)
# 欄位數(shù)值范圍
df.describe()

先將兩個(gè) ss13pusa.csv 串連起來,這份數(shù)據(jù)總共包含 30 萬筆數(shù)據(jù),3 個(gè)欄位:SCHL ( 學(xué)歷,School Level)、 PINCP ( 收入,Income) 和 ESR ( 工作狀態(tài),Work Status)。

pusa = pd.read_csv("ss13pusa.csv") pusb = pd.read_csv("ss13pusb.csv")
# 串接兩份數(shù)據(jù)
col = ['SCHL','PINCP','ESR']
df['ac_survey'] = pd.concat([pusa[col],pusb[col],axis=0)

依據(jù)學(xué)歷對(duì)數(shù)據(jù)進(jìn)行分群,觀察不同學(xué)歷的數(shù)量比例,接著計(jì)算他們的平均收入。

group = df['ac_survey'].groupby(by=['SCHL']) print('學(xué)歷分布:' + group.size())
group = ac_survey.groupby(by=['SCHL']) print('平均收入:' +group.mean())

二、波士頓房屋數(shù)據(jù)集

波士頓房屋數(shù)據(jù)集(Boston House Price Dataset)包含有關(guān)波士頓地區(qū)的房屋信息, 包 506 個(gè)數(shù)據(jù)樣本和 13 個(gè)特征維度。

數(shù)據(jù)來源:https://archive.ics.uci.edu/ml/machine-learning-databases/housing/。

數(shù)據(jù)名稱:Boston House Price Dataset。

先觀察數(shù)據(jù)的樣子與特性,以及每個(gè)欄位代表的意義、種類和范圍。

可以用直方圖的方式畫出房價(jià)(MEDV)的分布,如圖 8.8 所示。

df = pd.read_csv("./housing.data")
# 欄位種類數(shù)量
df.shape
# (506, 14)
#欄位數(shù)值范圍df.describe()
import matplotlib.pyplot as plt
df[['MEDV']].plot.hist()
plt.show()

Python數(shù)據(jù)可視化實(shí)例應(yīng)用分析

注:圖中英文對(duì)應(yīng)筆者在代碼中或數(shù)據(jù)中指定的名字,實(shí)踐中讀者可將它們替換成自己需要的文字。

接下來需要知道的是哪些維度與“房價(jià)”關(guān)系明顯。先用散布圖的方式來觀察,如圖8.9所示。

# draw scatter chart
df.plot.scatter(x='MEDV', y='RM') .
plt.show()

Python數(shù)據(jù)可視化實(shí)例應(yīng)用分析

最后,計(jì)算相關(guān)系數(shù)并用聚類熱圖(Heatmap)來進(jìn)行視覺呈現(xiàn),如圖 8.10 所示。

# compute pearson correlation
corr = df.corr()
# drawheatmap
import seaborn as sns
corr = df.corr()
sns.heatmap(corr)
plt.show()

Python數(shù)據(jù)可視化實(shí)例應(yīng)用分析

顏色為紅色,表示正向關(guān)系;顏色為藍(lán)色,表示負(fù)向關(guān)系;顏色為白色,表示沒有關(guān)系。RM 與房價(jià)關(guān)聯(lián)度偏向紅色,為正向關(guān)系;LSTAT、PTRATIO 與房價(jià)關(guān)聯(lián)度偏向深藍(lán), 為負(fù)向關(guān)系;CRIM、RAD、AGE 與房價(jià)關(guān)聯(lián)度偏向白色,為沒有關(guān)系。

“Python數(shù)據(jù)可視化實(shí)例應(yīng)用分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI