Pandas 內(nèi)置的十種畫圖方法
前言
Pandas是非常常見(jiàn)的數(shù)據(jù)分析工具,我們一般都會(huì)處理好處理數(shù)據(jù)然后使用searbon或matplotlib來(lái)進(jìn)行繪制。但在Pandas內(nèi)部就已經(jīng)集成了matplotlib,本文將展示Pandas內(nèi)部的畫圖方法。
畫圖類型
在Pandas中內(nèi)置的畫圖方法如下幾類,基本上都是常見(jiàn)的畫圖方法。每種方法底層也是使用的matplotlib。
line : line plot (default)
bar : vertical bar plot
barh : horizontal bar plot
hist : histogram
box : boxplot
density/kde : Density Estimation
area : area plot
pie : pie plot
scatter : scatter plot
hexbin : hexbin plot
在進(jìn)行畫圖時(shí)我們有兩種調(diào)用方法:
df = pd.DataFrame({
'sales': [3, 3, 3, 9, 10, 6],
'signups': [4, 5, 6, 10, 12, 13],
'visits': [20, 42, 28, 62, 81, 50],
}, index=pd.date_range(start='2018/01/01', end='2018/07/01', freq='M'))
# 方法1,這種方法是高層API,需要制定kind
df.plot(kind='area')
# 方法2,這種方法是底層API
df.plot.area()
面積圖(area)
面積圖直觀地顯示定量數(shù)據(jù)下面的區(qū)域面積,該函數(shù)包裝了 matplotlib 的area函數(shù)。
# 默認(rèn)為面積堆疊 df.plot(kind='area')

# 設(shè)置面積不堆疊 df.plot.area(stacked=False)

# 手動(dòng)指定坐標(biāo)軸 df.plot.area(y='sales', x='signups')

條形圖(bar)
條形圖是一種用矩形條顯示分類數(shù)據(jù)的圖,矩形條的長(zhǎng)度與它們所代表的值成比例。條形圖顯示離散類別之間的比較。圖的一個(gè)軸顯示比較的特定類別,另一個(gè)軸表示測(cè)量值。
df = pd.DataFrame({'lab':['A', 'B', 'C'], 'val':[10, 30, 20]})
# 手動(dòng)設(shè)置坐標(biāo)軸
ax = df.plot.bar(x='lab', y='val', rot=0)
# 并排繪制 df.plot.bar(rot=0)

# 堆疊繪制 df.plot.bar(stacked=True)

# 分圖繪制 axes = df.plot.bar(rot=0, subplots=True) axes[0].legend(loc=2) axes[1].legend(loc=2)

水平條形圖(barh)
水平條形圖是用矩形條形表示定量數(shù)據(jù)的圖表,矩形條形的長(zhǎng)度與它們所代表的值成正比。條形圖顯示離散類別之間的比較。
# 并排繪制 df.plot.barh(rot=0)

# 堆疊繪制 df.plot.barh(stacked=True)

箱線圖(boxplot)
箱線圖是一種通過(guò)四分位數(shù)以圖形方式描繪數(shù)值數(shù)據(jù)組的方法。該框從數(shù)據(jù)的 Q1 到 Q3 四分位值延伸,在中位數(shù) (Q2) 處有一條線。
age_list = [8, 10, 12, 14, 72, 74, 76, 78, 20, 25, 30, 35, 60, 85]
df = pd.DataFrame({"gender": list("MMMMMMMMFFFFFF"), "age": age_list})
ax = df.plot.box(column="age", by="gender", figsize=(10, 8))
密度圖(density)
核密度估計(jì) (KDE) 是一種估計(jì)隨機(jī)變量的概率密度函數(shù) (PDF) 的非參數(shù)方法。
s = pd.Series([1, 2, 2.5, 3, 3.5, 4, 5]) ax = s.plot.kde()

df = pd.DataFrame({
'x': [1, 2, 2.5, 3, 3.5, 4, 5],
'y': [4, 4, 4.5, 5, 5.5, 6, 6],
})
ax = df.plot.kde()
六邊形圖(hexbin)
和熱力圖類似,具體的顏色按照密度來(lái)進(jìn)行展示。但形狀使用六邊形圖代替。
n = 10000
df = pd.DataFrame({'x': np.random.randn(n),
'y': np.random.randn(n)})
ax = df.plot.hexbin(x='x', y='y', gridsize=20)
直方圖(hist)
df = pd.DataFrame(
np.random.randint(1, 7, 6000),
columns = ['one'])
df['two'] = df['one'] + np.random.randint(1, 7, 6000)
ax = df.plot.hist(bins=12, alpha=0.5)
折線圖(line)
s = pd.Series([1, 3, 2]) s.plot.line()

df = pd.DataFrame({
'pig': [20, 18, 489, 675, 1776],
'horse': [4, 25, 281, 600, 1900]
}, index=[1990, 1997, 2003, 2009, 2014])
lines = df.plot.line()
餅圖(pie)
df = pd.DataFrame({'mass': [0.330, 4.87 , 5.97],
'radius': [2439.7, 6051.8, 6378.1]},
index=['Mercury', 'Venus', 'Earth'])
plot = df.plot.pie(y='mass', figsize=(5, 5))
# 默認(rèn)使用index進(jìn)行分組 df.plot.pie(subplots=True, figsize=(11, 6))

散點(diǎn)圖(scatter)
df = pd.DataFrame([[5.1, 3.5, 0], [4.9, 3.0, 0], [7.0, 3.2, 1],
[6.4, 3.2, 1], [5.9, 3.0, 2]],
columns=['length', 'width', 'species'])
ax1 = df.plot.scatter(x='length',y='width', c='DarkBlue')
到此這篇關(guān)于Pandas 內(nèi)置的十種畫圖方法的文章就介紹到這了,更多相關(guān)Pandas 內(nèi)置畫圖方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入淺析python3中的unicode和bytes問(wèn)題
在python3中,有兩種字符串類型,默認(rèn)的就是str,即unicode,也叫做文本類型。這篇文章主要介紹了python3中的unicode和bytes問(wèn)題,需要的朋友可以參考下2019-07-07
Python開(kāi)發(fā)之os與os.path的使用小結(jié)
這篇文章主要介紹了Python開(kāi)發(fā)之os與os.path的使用小結(jié),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-05-05
個(gè)人微信公眾號(hào)接入ChatGPT的教程分享
這篇文章主要為大家詳細(xì)介紹了如何為個(gè)人微信公眾號(hào)接入ChatGPT,文中的實(shí)現(xiàn)步驟講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2023-05-05
使用python opencv對(duì)目錄下圖片進(jìn)行去重的方法
今天小編就為大家分享一篇使用python opencv對(duì)目錄下圖片進(jìn)行去重的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python獲取當(dāng)前腳本文件夾(Script)的絕對(duì)路徑方法代碼
在本篇文章中小編給各位整理了關(guān)于Python獲取當(dāng)前腳本文件夾(Script)的絕對(duì)路徑實(shí)例代碼內(nèi)容,有需要的朋友們學(xué)習(xí)下。2019-08-08
python開(kāi)發(fā)之基于thread線程搜索本地文件的方法
這篇文章主要介紹了python開(kāi)發(fā)之基于thread線程搜索本地文件的方法,以完整實(shí)例形式分析了Python基于多線程處理搜索問(wèn)題的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-11-11
使用python的pexpect模塊,實(shí)現(xiàn)遠(yuǎn)程免密登錄的示例
今天小編就為大家分享一篇使用python的pexpect模塊,實(shí)現(xiàn)遠(yuǎn)程免密登錄的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
詳解Python虛擬機(jī)是如何實(shí)現(xiàn)閉包的
Python中的閉包是一個(gè)強(qiáng)大的概念,允許函數(shù)捕獲和訪問(wèn)其周圍的作用域,即使這些作用域在函數(shù)執(zhí)行完畢后也能被訪問(wèn),這篇文章將著重討論P(yáng)ython虛擬機(jī)是如何實(shí)現(xiàn)閉包的,文中有相關(guān)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2023-12-12

