Python筆記--Matplotlib及seaborn繪圖基礎
【使用matplotlib.pyplot繪圖】
matplotlib.plot的基礎繪圖流程:
- 創建畫布(選擇是否繪製子圖,指定畫布大小,像素)
- 添加標題--添加x軸的名稱,刻度與範圍--添加y軸的名稱,刻度與範圍
- 繪製圖形,設置圖形的樣式,顏色,背景,並添加圖例
- 保存圖形,顯示圖形
1.創建畫布與創建子圖
p1 = plt.figure(figsize=(8,6),dpi=144) #設置畫布大小及解析度axes = p1.add_subplot(2,1,1) #創建一個2行1列的子圖,繪製第1張子圖
2. 添加畫布內容
plt.title(標題) #添加標題plt.xlabel(x) #添加x軸的名稱plt.ylabel(y) #添加y軸的名稱plt.xlim((0,1)) #x軸刻度範圍plt.ylim((0,1)) #y軸刻度範圍plt.xticks([0,1,2,3,4]) #x軸的刻度值plt.yticks([0,1,2,3,4]) #y軸的刻度值plt.legend([a,b]) #添加圖例
3.設置pyplot的動態rc參數
3.1 線條常用的rc參數:
#設置線條寬度,取0-10之間的數值,默認1.5plt.rcParams[lines.linewidth]=3 #設置線條樣式,可取-,--,-.,:4種,默認-plt.rcParams[lines.linestyle]=-.#設置線條上點的形狀,可取o,D,h,.,S等20種,默認為Noneplt.rcParams[lines.marker]=D#設置點的大小,取0-10之間的數值,默認為1 plt.rcParams[lines.markersize]=3
3.2 調節字體顯示為中文:
plt.rcParams[font.sans-serif]=SimHeiplt.rcParams[axes.unicode_minus]=False
4.繪製基本圖形
4.1繪製散點圖
df.plot.scatter(x=col1,y=col2,marker=o,c=red,s=3,alpha=0.5)# x,y接受array,表示對應的數據 marker為點的形狀,c為點的顏色,s為點的大小,alpha為點的透明度(0-1)
4.2繪製折線圖
df.plot(x=col1,y=col2,color=r,linestylex=-,marker=o,alpha=0.5)# x,y接受array,表示對應的數據 marker為點的形狀,color為點的顏色,linestyle為線條樣式,alpha為點的透明度(0-1) color常用參數:b-藍色,g-綠色,r-紅色,c-青色,m-品紅,y-黃色,k-黑色 color,marker,linestyle三個參數可簡寫成bo-
4.3繪製直方圖
df.col1.hist(bins=20)
4.4繪製條形圖
plt.bar(x,y,width_=0.8,color=red)# width為條形圖寬度(0-1),默認0.8
4.5繪製餅圖
plt.pie(x,explode=0.01,labels=[],color=red,autopct=%1.1f%%,radius=5)# explode為各項到圓心的距離,labels為每一項的名稱,autopct為值顯示形式,radius為餅圖半徑
4.6繪製箱圖
plt.boxplot(x,notch=False,sym=o,vert=None,widths=None,labels=None,meanline=False)# notch表示中間箱體是否有缺口,默認False sym為異常點形狀,默認None vert為圖形是縱向還是橫向,默認None widths為箱體寬度,labels為每個箱體的標籤 meanline為是否顯示均值線,默認False
【使用seaborn繪圖】
1.seoborn的樣式控制:sns.set()
sns.set(stylex=white,palette=muted,color_codes=True)# style為圖表的背景主題,有5種主題可以選擇: darkgrid 黑色網格(默認) whitegrid 白色網格 dark 黑色背景 white 白色背景 ticks 四周都有刻度線的白背景# palette為設置主體顏色,有6種可以選擇: deep,muted,pastel,bright,dark,colorblind
用despine進行邊框控制:
white和ticks參數的樣式,都可以刪除上方和右方坐標軸上不需要的邊框
despine(top=True, right=True, left=False, bottom=False, offset=None, trim=False) # 默認無參數的情況下,是刪除上面及右邊的邊框 offset可設置邊框的偏移距離,trim設置刪除邊框的範圍
seaborn中設置畫布大小及繪製子圖:
fig,axes = plt.subplots(nrows=2,ncols=2,figsize=(8,6))sns.countplot(x,y,data,ax=axes[0,0])sns.countplot(x,y,data,ax=axes[0,1])sns.countplot(x,y,data,ax=axes[1,0])sns.countplot(x,y,data,ax=axes[1,1])
2.繪製直方分布圖:
displot:
sns.distplot(data, bins=None, hist=True, kde=True, rug=False, fit=None,color=None, axlabel=None, ax=None)# bins--設置矩形圖數量 hist--是否顯示條形圖 kde --是否顯示核密度估計圖 rug --是否顯示邊際毛毯 fit --擬合的參數分布圖形
kdeplot:
sns.kdeplot(data, shade=True) #shade控制陰影
jointplot(雙變數分布):
sns.jointplot(x,y,data,kind=reg,color=g)# kind有三種參數: reg--繪製擬合直線 hex--繪製蜂窩狀散點圖 kde--繪製核密度圖
pairplot(矩陣分布):
sns.pairplot(data,vars=[col1,col2],hue=col3,palette=muted)# vars可自定義選擇幾個變數 hue選擇分類的欄位
2.繪製條形圖
barplot:
sns.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None,capsize=None, estimator=mean)# hue--分類欄位 order,hue_order--變數繪圖順序 orient--條形圖是水平(v)還是豎直(h) capsize--誤差棒的寬度 estimator--每類變數的統計方式,默認mean
countplot(計數圖):
sns.countplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None)
3.繪製箱圖
boxplot:
sns.boxplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, width_=0.8,notch=False)# hue--分類欄位 width--箱圖寬度 notch--中間箱體是否顯示缺口,默認False
4.繪製散點圖
lmplot:
sns.lmplot(x, y, data, hue=None, col=None, row=None, palette=None, col_wrap=3, size=5, markers=o)# hue--散點圖中的分類欄位 col--列分類變數,構成子集 row--行分類變數 col_wrap--控制每行子圖數量 size--控制子圖高度 markers--點的形狀
推薦閱讀:
※乾貨|Scikit-Learn的五種機器學習方法使用案例(python代碼)
※為什麼python缺少一個msbuild,從2008年到2014年一直不加上?
※教你免費搭建個人博客,Hexo&Github
※轉載「我是賣包子的,想學AI編程留在北京」
※為什麼Pypy沒有被推廣以及取代CPython?