iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
AI & Data

資料三十-那些最基本的資料處理與分析技能系列 第 22

【Day22-圖表】文不如表,表不如圖——使用seaborn一行透過圖表觀察資料!

  • 分享至 

  • xImage
  •  

我們人類是視覺的動物,因此在面對非常大量的資料的時候有一個合適、快速、有效的視覺化方法絕對是非常有必要的。所以今天就來簡單介紹幾個在做資料分析的時候最基礎的幾個圖表吧

繪圖神器seaborn

雖然它其實也是基於mathplotlib核心開發的,而且一般python在學習的過程中也幾乎都是先學到mathpoltlib,不過我還是強烈建議在可以的情況下儘量優先用seaborn,因為它

就 很 好看。

ggplot2對於R來說讓資料視覺化提升到了一個新的境界,python也不能每次都畫太醜的圖你說是吧?

範例資料——某校109年GPA成績

df = pd.read_excel("GPA.xlsx")
df["Department"] = df["科號"].apply(lambda x: re.search("[A-Z]+", x)[0]) # 取出系所為連續字母
df["GPA"] = df["平均值"].apply(lambda x: re.search("[\d\.]+", x)[0]).apply(float) # 取出數字並轉換型態
df["var"] = df["標準差"].apply(lambda x: re.search("[\d\.]+", x)[0]).apply(float)
df

df2 = df[df["Department"].isin(["EE", "PHYS", "MATH", "ECON"])] # 篩選一下資料好做舉例

觀察一變數的分佈情況——盒裝圖、小提琴圖

盒狀圖

盒裝圖會顯示的資訊有

  • 全值範圍:最大值、最小值
  • 中位數
  • 中間半數資料範圍:第一、第三四分位數

因此很適合讓我們檢視看看是否有離群值,或是資料分佈是否過於集中/分散

# 盒狀圖
sns.boxplot(x=df2["Department"], y=df2["GPA"])

小提琴圖

小提琴圖和盒狀圖很類似,只是比起離散的幾個數據點資料,更多了資料在不通過值時候的密度(即那個值的時候有多少資料)

sns.violinplot(x=df2["Department"], y=df2["GPA"])

觀察二變數的相關趨勢——散佈圖、趨勢線

當我們要同時觀察兩個以上的變數的時候,我們所能詳細觀察的資料就通常不會像一維資料一樣細,但這個時候我們反而是會比較重視兩個變數之間的關係,因此散佈圖就是一個很好的工具,而同時我們可以加上趨勢線來輔助我們判斷

# 分佈圖
sns.regplot(x=df2["GPA"], y=df2["var"],ci=10)

觀察多變數之間的潛在關係——平行座標圖

有的時候我們的資料會有很多組的變數,你需要大概的看一下這些變數之間的關係,但又不需要到去畫出Correlation那麼細,這個時候平行座標圖絕對是你的好選擇

from pandas.plotting import parallel_coordinates
iris = sns.load_dataset('iris') # 換個資料範例用iris
parallel_coordinates(iris, 'species')
plt.show()

最後放張梗圖打完收工


在最初看到這種圖的時候真的挺震驚的,有一種「啊原來還能這樣玩啊」的感覺XD


上一篇
【Day21-濾波】圖片也有頻率?影像資料如何做濾波?
下一篇
【Day23-降維】相信你的眼睛,在訓練模型之前一定要做的事情——利用降維技巧檢視資料分群狀態:PCA, tSNE, SVD, SOM
系列文
資料三十-那些最基本的資料處理與分析技能30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言