Pandas知识点-绘制统计图
Pandas知識點-繪制統(tǒng)計圖
使用matplotlib可以繪制各種各樣的統(tǒng)計圖,Pandas對matplotlib中的繪圖方法進行了更高層的封裝,使用起來更簡單方便。
本文介紹Pandas中最基本的幾種統(tǒng)計圖的繪制方法,都非常常用。
本文使用的數(shù)據(jù)來源于網(wǎng)易財經(jīng),具體下載方法可以參考:https://blog.csdn.net/weixin_43790276/article/details/113923039。
一、數(shù)據(jù)準(zhǔn)備
數(shù)據(jù)文件是600519.csv,將此文件放到代碼同級目錄下,從文件中讀取出數(shù)據(jù)。
為了使數(shù)據(jù)簡潔一點,刪除了一些列,設(shè)置“日期”為索引。
讀取的原始數(shù)據(jù)如上圖,本文基于這些數(shù)據(jù)來繪制統(tǒng)計圖。
二、繪制折線圖
Pandas中直接用Series對象或DataFrame對象調(diào)用plot()方法既可以繪制統(tǒng)計圖。
kind: 使用kind參數(shù)指定圖形的種類,line表示折線圖,scatter表示散點圖,bar表示柱狀圖,barh表示水平柱狀圖,hist表示直方圖,pie表示餅圖。這六種圖形是最常用的圖形,kind還支持其他圖形,如box表示箱圖等。
figsize: 使用figsize參數(shù)設(shè)置圖形的大小,參數(shù)格式為(width, height)。
xlabel: 圖形中會顯示x軸的標(biāo)簽,可以使用xlabel參數(shù)修改或設(shè)置不顯示,ylabel同理。
繪圖時為了顯示(show()方法)圖形,會導(dǎo)入matplotlib.pyplot(as plt),可以使用plt對象的xticks()方法設(shè)置x軸刻度值,刻度值的傾斜度等,yticks()同理??梢允褂胻ext()方法添加圖形中的數(shù)值標(biāo)簽。
kind參數(shù)默認為line,在繪制折線圖時可以不指定kind參數(shù)。
linestyle: 使用linestyle參數(shù)設(shè)置折線圖的線型,如'--'表示虛線,'-.'表示點線等。
marker: 使用marker參數(shù)設(shè)置折線圖中數(shù)值點的樣式,可以設(shè)置'o','*'等。
用DataFrame對象繪制折線圖時,有多組數(shù)據(jù),調(diào)用plot()方法會自動繪制出條折線圖,并且自動設(shè)置好圖例,比matplotlib方便很多。
三、繪制散點圖
設(shè)置kind參數(shù)為scatter即可繪制散點圖。
需要注意的是,在Pandas中,scatter不支持Series對象,只支持DataFrame對象,所以不能用Series對象繪制散點圖。
繪制散點圖時,通過x參數(shù)和y參數(shù)指定散點圖的x軸數(shù)據(jù)和y軸數(shù)據(jù)。x和y都是DataFrame中的列標(biāo)簽,繪圖時會根據(jù)列標(biāo)簽讀取對應(yīng)列的數(shù)據(jù)。
s: 使用s參數(shù)設(shè)置散點圖中點的大小。
在Pandas中,繪制圖形除了在plot()中指定kind參數(shù)外,還可以通過plot鏈?zhǔn)秸{(diào)用對應(yīng)的方法,如plot.scatter()表示繪制散點圖,后面繪制柱狀圖、直方圖、餅圖等也可以用鏈?zhǔn)秸{(diào)用的方式。
alpha: 設(shè)置圖形顯示的透明度,默認是None,可以傳入0~1之間的數(shù),值越小越透明。
marker參數(shù)與折線圖中的用法相同,當(dāng)設(shè)置成'*'時,顯示的圖形為五角星,當(dāng)然還有很多其他的類型,可以參考matplotlib中的markers模塊。
c: c參數(shù)用于設(shè)置散點圖的顏色,可以指定一個顏色,也可以設(shè)置成一個數(shù)組或浮點數(shù),如例子中使用numpy生成一個隨機的數(shù)組,顏色隨機從cmap中獲取。
cmap: cmap參數(shù)用于設(shè)置點的顏色熱力圖,默認為image.cmap,可以設(shè)置成自己需要的顏色類型,參考matplotlib中的colors模塊。只有當(dāng)顏色參數(shù)c設(shè)置成數(shù)組或浮點數(shù)時,cmap參數(shù)才有用。
設(shè)置cmap參數(shù)后,會在圖形右邊生成一個柱狀的顏色漸變圖,就像下圖這樣。此時x軸的刻度值會被自動隱藏,將colorbar參數(shù)設(shè)置成False,可以隱藏顏色漸變圖,重新顯示x軸刻度值。
s參數(shù)也可以設(shè)置成一個數(shù)組,如例子中也是用numpy生成一個隨機的數(shù)組,使每個點的大小不一樣。
四、繪制柱狀圖
使用plot鏈?zhǔn)秸{(diào)用bar()方法,或在plot()中設(shè)置kind為bar,都可以繪制柱狀圖。
width:?width參數(shù)用于設(shè)置柱狀圖的寬度,默認為0.8,可以根據(jù)需要進行修改。柱狀圖的每一組柱子是獨立的,所以中間留好適合的間距會更好,width一般都設(shè)置成小于1。
bottom:?bottom參數(shù)用于設(shè)置柱狀圖的底部位置(使柱狀圖“上浮”),默認為0,這個參數(shù)一般不需要修改,保持0即可。設(shè)置bottom參數(shù)后,柱狀圖會沿y軸方向上移,如設(shè)置為200,則柱狀圖上移200,從y坐標(biāo)為200的地方開始繪制,柱狀圖的長度不發(fā)生改變。例子中的0.5相對于2000多的數(shù)值差距太大,看不出來。
color:?color參數(shù)用于設(shè)置柱狀圖的顏色,前面折線圖和散點圖是用c參數(shù),有一點差異。當(dāng)柱狀圖中有多組數(shù)據(jù)時,最好傳入一個數(shù)組,使不同組的柱狀圖顏色不一樣,方便區(qū)分。
五、繪制水平柱狀圖
使用plot鏈?zhǔn)秸{(diào)用barh()方法,或在plot()中設(shè)置kind為barh,就可以繪制水平柱狀圖了,參數(shù)用法與bar()方法一樣。當(dāng)然,在設(shè)置x軸刻度值,y軸刻度值,數(shù)值標(biāo)簽等時要注意方向的轉(zhuǎn)換。
六、繪制直方圖
使用plot鏈?zhǔn)秸{(diào)用hist()方法,或在plot()中設(shè)置kind為hist,都可以繪制直方圖。這里要強調(diào)的是,直方圖不是柱狀圖,兩者的應(yīng)用場景完全不同。
繪制直方圖前,要根據(jù)數(shù)據(jù)的分布設(shè)置好適合的組距,然后根據(jù)組距計算出組數(shù)。
bins: bins參數(shù)用于設(shè)置直方圖的組數(shù),傳入計算的組數(shù)。
如果需要顯示圖例,使用plt對象的legend()方法設(shè)置即可。
七、繪制餅圖
使用plot鏈?zhǔn)秸{(diào)用pie()方法,或在plot()中設(shè)置kind為pie,都可以繪制餅圖(扇形圖)。
餅圖是用于展示數(shù)據(jù)占比的,所以要先確定數(shù)據(jù)是否符合預(yù)期,如果不符合要先進行處理。
autopct:?autopct參數(shù)用于設(shè)置餅圖中的百分比格式,如'%.2f%%'表示保留兩位小數(shù)。
colors: colors參數(shù)用于設(shè)置每個扇形的顏色,與數(shù)據(jù)分類一一對應(yīng),傳入一個長度與數(shù)據(jù)分類數(shù)相等的列表。
explode: explode參數(shù)用于設(shè)置每個扇形到圓心的距離,傳入一個長度與數(shù)據(jù)分類數(shù)相等的列表,默認每個扇形到圓心的距離都是0,將想要分離展示的扇形距離設(shè)置成一個適合的值,如0.1,即可將該部分突出展示。
pctdistance: pctdistance參數(shù)用于設(shè)置百分比顯示離圓心的距離,默認值是0.6,可以按需將pctdistance參數(shù)增大或減小。
textprops: textprops參數(shù)用于設(shè)置標(biāo)簽和百分比的字體、大小等,傳入一個字典。
以上就是Pandas中六種常用統(tǒng)計圖的繪制介紹,如果需要代碼和數(shù)據(jù),可以掃碼關(guān)注公眾號“Python碎片”,然后在后臺回復(fù)“pandas05”關(guān)鍵字獲取本文代碼和數(shù)據(jù)。
?
?
總結(jié)
以上是生活随笔為你收集整理的Pandas知识点-绘制统计图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能园区中的身份识别的原理是什么?
- 下一篇: 计算机算法设计与分析