
文章目錄
- 前文回顧
- 資料集
- seaborn繪圖入門
- 直方圖 與 密度圖
- 頻數圖
- 條形圖
- 散點圖
- 為點設定形狀和大小
- 蜂巢圖
- 2D密度圖
- 箱線圖
- 條形圖
- 小提琴圖
- 成對關系
- 多變數資料
前文回顧
跟我一起學點資料分析 --第五天:資料可視化(matplotlib部)
資料集
資料可視化部分能用到的資料集在上一篇都已經給啦,
什么x軸、y軸、標題,咱一律不整那些虛的啊,前一篇已經整夠多了,復制粘貼的我都累,
seaborn繪圖入門
這里先用tips.
直方圖 與 密度圖
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
ax = sns.displot(tips['total_bill'],kde = True)
# displot 函式默認會繪制直方圖和密度圖,如果不想看到密度圖,把kde設為False,我這邊默認是False
plt.show()

如果只想看到密度圖呢?

本來想把上面的kde引數改成hist引數,但是說hist引數已經被棄用,就是這么無情,并不能在國內的網站上輕易找到答案,反正我煩了一頁是沒有,還是在國外的一本書上人家隨口提了一句,
國內網站關于seaborn的資料太少了,英語咱又不好,,,還不會翻墻,,,
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
ax = sns.kdeplot(tips['total_bill'])
plt.show()
頻數圖
上邊第一張就差不多

有區分度么?
ax = sns.distplot(tips['total_bill'],rug = True)
條形圖
ax = sns.countplot('day',data = tips)

接下來是雙變數資料的世界
散點圖
ax = sns.regplot(x = 'total_bill',y = 'tip',data = tips)

同樣的,如果你不想看回歸線,那怎么辦?把fit_reg設定為False

來個更牛逼的,具體自己看:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
ax = sns.jointplot(x = 'total_bill',y = 'tip',data = tips)
ax.set_axis_labels(xlabel='Total Bill',ylabel='Tip')
ax.fig.suptitle('Joint Plot',fontsize = 10,y = 1.03)
plt.show()
為點設定形狀和大小
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
sns.regplot(x='total_bill', y='tip', data=tips,marker='o', color='red', scatter_kws={'s':20})
plt.show()
更詳盡的用法參考上一篇

蜂巢圖
散點圖適用于比較兩個變數,但有時圖中的點太多反而會失去意義,
哎,話也不多說,直接看吧:

就改這么一行:hexbin = sns.jointplot(x = 'total_bill',y = 'tip',data = tips,kind = 'hex')
然后就OK啦
2D密度圖
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
ax = sns.kdeplot(data = tips['total_bill'],data2 = tips['tip'],shade = True)
plt.show()

ax = sns.jointplot(data = tips,x = 'total_bill',y = 'tip',kind = 'kde')

箱線圖
箱線圖用來顯示多種統計資料的資訊,就是describe函式看到的那些·
ax = sns.boxplot(data = tips,y = 'total_bill',x = 'time')

條形圖
條形圖我就不說了吧,barplot,自己用,
小提琴圖

我說它是箱線圖和密度圖的合體你信嗎?
ax = sns.violinplot(data = tips,y = 'total_bill',x = 'time')
成對關系
當大部分資料都是阿拉伯數字的時候,可以使用pairplot 把所有的成對關系都描繪出來,
但是直接用的話,會有不少的冗余,
于是·我們采用PairGrid來手動指定圖的上半部分和下半部分(一會兒可以去查一下這個函式)
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
pait_grid = sns.PairGrid(tips)
pait_grid = pait_grid.map_upper(sns.regplot)
pait_grid = pait_grid.map_lower(sns.kdeplot)
pait_grid = pait_grid.map_diag(sns.distplot,rug = True) #這個true有什么用呢?只是頻數而已
plt.show()

多變數資料
如果資料量還不小,你想根據某個變數來進行一波分流操作,怎么操作呢?
比方說我現在要以性別來分流,

ax = sns.violinplot(data = tips,y = 'total_bill',x = 'time',hue='sex')
這篇就先到這里啦,
最近我發現啊,要驗證一篇博客好不好,要看它的實戰性能,
所以后面我還會回來的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/244716.html
標籤:其他
上一篇:C語言編程>第十二周 ④ 請撰寫函式fun,該函式的功能是:實作D=B+B′,即把矩陣B加上B的轉置,存放在矩陣D中。計算結果在main函式中輸出。
