《利用Python進(jìn)行數(shù)據(jù)分析》 9.2 使用pandas和seaborn繪圖

9.2.2 柱狀圖


1.plot.bar()和plot.barh()分別用來繪制垂直和水平的柱狀圖


2.Series或DataFrame的索引被用作x軸刻度線(bar)或y軸刻度線(barh)(參考圖9-15)


圖9-15:水平柱狀圖和垂直柱狀圖

3.選項(xiàng)color='k'將柱子顏色設(shè)置為黑色;alpha將圖像的填充設(shè)置為部分透明


圖9-16 Dataframe柱狀圖

4.在DataFrame柱狀圖中(參考圖9-16),

?????????????? (1)每一行中的值分組到并排的柱子中的一組

? ? ? ? ? ? ?? (2)列名稱“Genus”被用作圖例標(biāo)題


5.傳遞stacked=True來生成堆積柱狀圖,使得每一行的值堆積在一起

圖9-17 DataFrame堆積柱狀圖

6.使用value_counts:

data.value_counts().plot.bar()可以有效的對Series的值頻率進(jìn)行可視化(參考圖9-15以及圖9-18)

圖9-18 使用value_counts

7.示例:繪制一個堆積柱狀圖,用于展示每個派對在每天的數(shù)據(jù)點(diǎn)占比(參考圖9-20(1)、9-20(2))

???? 使用read_csv導(dǎo)入文件tips.csv(見圖9-19)

圖9-19 tips_csv部分文件
圖9-20(1) 代碼示例
圖9-20(2) 示例每天分規(guī)模的派對數(shù)量百分比



8.對于在繪圖前需要聚合或匯總的數(shù)據(jù),使用seaborn會使工作更簡單

??? 使用seaborn進(jìn)行按星期日計(jì)算小費(fèi)百分比(參考圖9-21)

圖9-21 用錯誤欄按天數(shù)顯示小費(fèi)的百分比

? ???? seaborn中的繪圖函數(shù)使用一個data參數(shù),這個參數(shù)可以是pandas的DataFrame。其他的參數(shù)則與列名有關(guān)。

? ?? ? day列中有多個觀測值,柱子的值是tip_pct的平均值。

? ? ? ? 柱子上畫出的黑線代表的是95%的置信區(qū)間(置信區(qū)間可以通過可選參數(shù)進(jìn)行設(shè)置)。???? 注:置信區(qū)間:指由樣本統(tǒng)計(jì)量所構(gòu)造的總體參數(shù)的估計(jì)區(qū)間


9.seaborn.barplot擁有一個hue選項(xiàng),允許我們通過一個額外的分類值將數(shù)據(jù)分離(如圖9-22)

圖9-22 hue用法

注:seaborn自動改變了圖表的美觀性:默認(rèn)的調(diào)色板、圖背景和網(wǎng)格線條顏色


9.2.3 直方圖和密度圖


1.直方圖:一種條形圖,用于給出值頻率的離散顯示。????????????????????????????????????????????? ?? ? 數(shù)據(jù)點(diǎn)被分成離散的,均勻間隔的箱,并且繪制每個箱中數(shù)據(jù)點(diǎn)的數(shù)量。

使用Series的plot.hist方法制作小費(fèi)占總費(fèi)用百分比的直方圖(如圖9-23)

圖9-23 小費(fèi)百分比的直方圖

2.密度圖(KDE圖):一種與直方圖相關(guān)的圖表類型,它通過計(jì)算可能產(chǎn)生觀測數(shù)據(jù)的連續(xù)概率分布估計(jì)而產(chǎn)生。????????????????????? ? ? ? ?? ?????????????????????????????????????????????????????????????????? 通常的做法是將這種分布近似為“內(nèi)核”的混合,也就是像正態(tài)分布那樣簡單的分布。

plot.kde使用傳統(tǒng)法定混合法估計(jì)繪制密度圖(見圖9-24):

圖9-24 小費(fèi)百分比密度圖

3. distplot方法可以繪制直方圖和連續(xù)密度估計(jì),通過distplot方法seaborn使直方圖和密度圖的繪制更為簡單。

示例:考慮由兩個不同的標(biāo)準(zhǔn)正態(tài)分布組成的雙峰分布

圖9-25 正態(tài)混合的標(biāo)準(zhǔn)化直方圖與密度估計(jì)

9.2.4 散點(diǎn)圖或點(diǎn)圖


1.點(diǎn)圖或散點(diǎn)圖可以用于檢驗(yàn)兩個一維數(shù)據(jù)序列之間的關(guān)系??????????????????????????????????????????????? 示例:載入文件,選擇對數(shù)計(jì)算對數(shù)差(見圖9-27) ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

圖9-26 載入文件部分
圖9-28 代碼計(jì)算對數(shù)差

注:(1)np.diff(a,n=1axis=-1) ????????????????????????????????????????????????????????????????????????????????????????????? Calculate the n-th discrete difference along the given axis??????????????????????????????????????? (2)DataFrame.dropna(axis=0,how='any',thresh=None,subset=None,inplace=False)???????????????? Remove missing values.(3)np.log()????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ? ? ? log() 返回 x 的自然對數(shù)

使用seaborn的regplot方法,該方法可以繪制散點(diǎn)圖,并擬合出一個條線性回歸線(見圖9-29)

圖9-29 seaborn回歸散點(diǎn)圖

2.對圖、散點(diǎn)圖矩陣?? 查看一組變量中的所有散點(diǎn)圖

利用seaborn的pairplot函數(shù),它支持在對角線上放置每個變量的直方圖或密度估計(jì)值(見圖9-30)

圖9-30 statsmodels macro數(shù)據(jù)的成對圖矩陣

注:plot_ksw參數(shù):使我們能夠?qū)⑴渲眠x項(xiàng)傳遞給非對角元素上的各個繪圖調(diào)用


9.2.5 分面網(wǎng)格和分類數(shù)據(jù)?


1.分面網(wǎng)格是利用多種分組變量對數(shù)據(jù)進(jìn)行可視化的方式

seaborn擁有一個有效的內(nèi)建函數(shù)factorplot,它可以簡化多種分面繪圖(見圖9-31):

圖9-31 按星期日期/時間/是否吸煙劃分的小費(fèi)百分比

除了根據(jù)’time’在一個面內(nèi)將不同的柱分組為不同的顏色,我們還可以通過每個時間值添加一行來擴(kuò)展分面網(wǎng)格(見圖9-32):

sns.factorplot(x='day', y='tip_pct', row='time',?????????????????????????????????????????????????????????????????????????????? .....:? ? ? ? ? ? ? ? ? col='smoker', ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? .....:? ? ? ? ? ? ? ? ? kind='bar', data=tips[tips.tip_pct < 1])

圖9-32 根據(jù)時間、是否吸煙分面后的按星期劃分的小費(fèi)百分比

factorplot支持其他可能有用的圖類型,具體取決于你要顯示的內(nèi)容。例如,箱形圖(顯示中位值、四分位數(shù)和異常值)可以是有效的可視化類型(圖9-33):

圖9-33 根據(jù)星期日期繪制的小費(fèi)百分比箱形圖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容