Pandas繪圖函數(shù)超詳細講解
簡介
| method | 繪圖類別 | method | 繪圖類別 |
|---|---|---|---|
'line' | 折線圖[默認使用] | 'area' | 堆疊面積圖 |
'bar' | 縱向條形圖 | 'barh' | 橫向條形圖 |
'kde' | 概率分布圖 | 'density' | 概率分布圖 |
'box' | 箱線圖 | 'hist' | 數(shù)據(jù)直方圖 |
'pie' | 餅圖 | ||
'scatter' | 散點圖 | 'hexbin' | 六角拼接圖 |
其中scatter和hexbin只適用于數(shù)據(jù)幀,即DataFrame格式。所謂DataFrame,即數(shù)據(jù)幀,可以理解為一個表格,如果不考慮表頭的話,這個表格就是多維數(shù)組。
對于這些圖像類別,也可以調(diào)用專門封裝成的函數(shù)進行繪制,例如針對下面這組數(shù)據(jù)
import matplotlib.pyplot as plt import pandas as pd s = pd.Series([1, 2, 2.5, 3, 3.5, 4, 5])
s.plot.kde()完全等價于s.plot(kind='kde')。
接下來逐個展示這些圖表
條形圖
pandas中提供橫向和縱向兩種條形圖。
import numpy as np
df = pd.DataFrame(np.random.rand(10,5),
columns=['a','b','c','d','e'])
df.plot.bar(title="bar")
df.plot.barh(title="barh", stacked=True)
plt.show()
barbarh


折線圖
df.plot.line(title="line") df.plot.area(title="area") plt.show()
linearea


箱線圖
箱形圖(Box-plot)又稱為盒須圖、盒式圖或箱線圖,是一種用作顯示一組數(shù)據(jù)分散情況資料的統(tǒng)計圖。因形狀如箱子而得名。在各種領域也經(jīng)常被使用,常見于品質(zhì)管理。它主要用于反映原始數(shù)據(jù)分布的特征,還可以進行多組數(shù)據(jù)分布特征的比 較。箱線圖的繪制方法是:先找出一組數(shù)據(jù)的上邊緣、下邊緣、中位數(shù)和兩個四分位數(shù);然后, 連接兩個四分位數(shù)畫出箱體;再將上邊緣和下邊緣與箱體相連接,中位數(shù)在箱體中間。
df.plot.box(title='box') df.plot.kde(title='kde') plt.show()
boxkde


直方圖
hist為數(shù)據(jù)直方圖,多條數(shù)據(jù)放在一起容易混淆,可以設置透明度alpha。下面對高斯分布的散點進行繪制,分別繪制其數(shù)據(jù)直方圖和概率密度圖,可以看出二者之間的關聯(lián)性。
rdNormal = np.random.normal
rand = np.random.rand
df = pd.DataFrame({
i : rdNormal(i,rand(),size=(1000)) for i in range(3)})
df.plot.hist(title='box', bins=30, alpha=0.5)
df.plot.density(title='density')
plt.show()
histdensity


餅圖
餅圖對輸入數(shù)據(jù)有一定的限制,即不允許出現(xiàn)負值,故在繪制之前,將df所有值取絕對值,且不支持多組數(shù)據(jù)在一個圖中繪制,故而需要開啟subplot選項
df = pd.DataFrame(np.random.rand(5,3),columns=list('abc'),index=list("ABCDE"))
df.plot.pie(title='pie', subplots=True)
plt.show()

當然,這個subplots選項是任何一種圖像都可以使用的參數(shù)。
散點圖和六邊形分箱圖
散點圖是只有數(shù)據(jù)幀可以調(diào)用的繪圖方法,共有兩類,分別是scatter和hexbin,前者是普通的散點圖,后者是六邊形分箱圖,本質(zhì)上是一種二維的數(shù)據(jù)直方圖。
rdNormal = np.random.normal
rand = np.random.rand
keys = ['x', 'y', 'c']
datas = {
keys[i] : rdNormal(i,rand(),size=(1000)) for i in [0,1,2]
}
df = pd.DataFrame(datas)
df.plot.scatter(x='x', y='y', c='c')
df.plot.hexbin(x='x', y='y', gridsize=10)
plt.show()
scatter

hexbin

到此這篇關于Pandas繪圖函數(shù)超詳細講解的文章就介紹到這了,更多相關Pandas繪圖函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用python實現(xiàn)抓取中國銀行外匯牌價首頁數(shù)據(jù)實現(xiàn)
這篇文章主要為大家介紹了如何使用python實現(xiàn)抓取中國銀行外匯牌價首頁數(shù)據(jù)的實現(xiàn)示例,有需要的同學可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-10-10

