數(shù)據(jù)可視化是數(shù)據(jù)分析的一個(gè)重要方面,它提供了一種理解數(shù)據(jù)并從中得出有意義見(jiàn)解的方法。Pandas 是最常見(jiàn)的于數(shù)據(jù)分析的 Python 庫(kù),它基于Matplotlib擴(kuò)展了一些常用的可視化圖表,可以方便的調(diào)用,本篇文章就讓我們看看有哪些圖表可以直接使用。 在本文中,我們介紹使用 Pandas 進(jìn)行數(shù)據(jù)可視化的基礎(chǔ)知識(shí),包括創(chuàng)建簡(jiǎn)單圖、自定義圖以及使用多個(gè)DF進(jìn)行繪圖。 我們將導(dǎo)入必要的庫(kù)并加載示例數(shù)據(jù)集。 import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('https://raw./mwaskom/seaborn-data/master/titanic.csv') 我們使用泰坦尼克的示例數(shù)據(jù)集,包含有乘客的信息,包括他們的船艙等、年齡、票價(jià)和生存狀態(tài)等信息。 創(chuàng)建簡(jiǎn)單的圖Pandas的 plot 方法提供了創(chuàng)建基本圖(例如線(xiàn)圖、條形圖和散點(diǎn)圖)的簡(jiǎn)單方法。讓我們看幾個(gè)例子。 線(xiàn)圖 線(xiàn)圖用于表示連續(xù)間隔或時(shí)間段內(nèi)的數(shù)據(jù)趨勢(shì)。要?jiǎng)?chuàng)建線(xiàn)圖,調(diào)用plot 方法時(shí)需要將 kind 參數(shù)指定為 line。 df.plot(kind='line', x='age', y='fare') 看著很亂對(duì)吧,這是因?yàn)槲覀冋故镜臄?shù)據(jù)無(wú)法用線(xiàn)圖進(jìn)行表示,下面我們用更好的圖表表示年齡這個(gè)字段 直方圖 我們可以在字段后直接使用hist方法來(lái)生成數(shù)據(jù)的直方圖 df.age.hist(figsize=(7.3,4), grid=False) 這樣是不是就一目了然了,能夠清楚地看到年齡的分布情況 條形圖 條形圖用于表示分類(lèi)數(shù)據(jù),其中每個(gè)條代表一個(gè)特定類(lèi)別。要?jiǎng)?chuàng)建條形圖,可以 pandas DataFrame 上使用 plot 方法并將 kind 參數(shù)指定為 bar。 df['class'].value_counts().plot(kind='bar') 餅圖 餅圖與條形圖類(lèi)似,但是它主要來(lái)查看數(shù)據(jù)的占比 df['embark_town'].value_counts().plot(kind='pie', rot=0) 散點(diǎn)圖 散點(diǎn)圖用于表示兩個(gè)連續(xù)變量之間的關(guān)系。要?jiǎng)?chuàng)建散點(diǎn)圖使用 plot 方法將 kind 參數(shù)指定為 scatter。 df.plot(kind='scatter', x='age', y='fare') Plot方法Pandas的可視化主要使用.plot()方法,它有幾個(gè)可選參數(shù)。其中最重要的是kind 參數(shù),它可以接受 11 個(gè)不同的字符串值,并根據(jù)這些值創(chuàng)建不同的圖表:
如果你不指定kind 參數(shù),它的默認(rèn)值為“l(fā)ine”。也就是折線(xiàn)圖。如果不向 .plot() 提供任何參數(shù),那么它會(huì)創(chuàng)建一個(gè)線(xiàn)圖,其中索引位于 x 軸上,所有數(shù)字列位于 y 軸上。雖然這對(duì)于只有幾列的數(shù)據(jù)集來(lái)說(shuō)是一個(gè)有用的默認(rèn)值,但對(duì)于大型數(shù)據(jù)集及其多個(gè)數(shù)字列來(lái)說(shuō),它看起就不好了。 還有就是:作為將字符串傳遞給 .plot() 的 kind 參數(shù)的替代方法,DataFrame 對(duì)象有幾種方法可用于創(chuàng)建上述各種類(lèi)型的圖: .area() .bar() .barh() .box() .hexbin() .hist() .kde() .density() .line() .pie() .scatter() 還記得我們第一個(gè)直方圖的.hist方法嗎,他就是kind='hist’的一個(gè)替代。 定制圖表樣式顏色我們還可以通過(guò)使用不同的參數(shù)來(lái)自定義圖表的外觀,例如標(biāo)記的顏色、大小和形狀、標(biāo)簽和標(biāo)題。 df.plot(kind='scatter', x='age', y='fare', color='red', alpha=0.5) 就像我們最初介紹的那樣,pandas繪圖的底層是使用Matplotlib,所以這些參數(shù)都是與Matplotlib一致的,我們可以隨意進(jìn)行調(diào)整。 多個(gè)DataFrame繪圖Pandas還沒(méi)有提供多個(gè)DataFrame的方法,所以我們只能使用Matplotlib,就像下面這樣: df_survived = df[df['survived'] == 1] df_not_survived = df[df['survived'] == 0] plt.scatter(df_survived['age'], df_survived['fare'], color='green', label='Survived') plt.scatter(df_not_survived['age'], df_not_survived['fare'], color='red', label='Not Survived') plt.xlabel('Age') plt.ylabel('Fare') plt.title('Relationship between Age and Fare') plt.legend() plt.show() 總結(jié)作為最常用的數(shù)據(jù)分析庫(kù) Pandas 提供了一種創(chuàng)建圖表的簡(jiǎn)單方法,這種方法可以幫我們快速對(duì)數(shù)據(jù)集進(jìn)行簡(jiǎn)單的分析,快速的了解數(shù)據(jù)集的情況。如果需要對(duì)數(shù)據(jù)進(jìn)行更高級(jí)的可視化,可以使用Seaborn、Plotly等更高級(jí)的庫(kù)。 Panda的可視化文檔在這里,有興趣的可以詳細(xì)查看: https://pandas./docs/user_guide/visualization.html 希望本文對(duì)你有所幫助。
|
|
來(lái)自: NeighborMrSun > 《數(shù)據(jù)可視化》