iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
AI & Data

學習筆記: 以Python和資料視覺化工具完成簡易資料視覺化(Data Visualization)系列 第 9

Day 9: Python資料視覺化程式庫「Seaborn」與帶有簡易設計感的直條圖

  • 分享至 

  • xImage
  •  

       這幾日我們介紹了Pandas和Matplotlib,並製作了簡單的圖表。今日筆者將要學習有關Seaborn的內容。今日筆者將從《精通Python》與Seaborn官網教學學習,並介紹Seaborn的功用和簡易語法。

       如Day 6時我們所提到的,Seaborn和Pandas、Matplotlib皆是Python中可用來處理資料視覺化的套件,但特別的是,Seabon是以Matplotlib作為根基,因此在撰寫述句時,需要將Matplotlib書寫至述句中。它有強大的資料處理、統計與繪圖功能,許多人在處理線性回歸時,會使用Seaborn來處理。

       如果要學習完整的Seaborn內容,可以參考它們的官網 “seaborn: statistical data visualization”,裡面有各式圖形的Gallery、教學、API內容,十分多元。(見圖一)

https://ithelp.ithome.com.tw/upload/images/20220924/2015187361tJAb1Q0F.png

圖一: Seaborn官網內容。(引用自: https://seaborn.pydata.org/examples/index.html)

Seaborn也跟Matplotlib類似,在開始寫程式之前,有它固定的「起手式」: 通常需要先寫以下的內容後,才能進行更多Seaborn的視覺化工作:

import seaborn as sns
import matplotlib.pyplot as plt

(上述兩則述句的順序應可互換)
或是直接寫:

import matplotlib.pyplot as plt 

接下來,我們需要填入Seaborn的樣式設定(seaborn.set_style)。在Seaborn中,共有五個樣式設定,分別如下:

darkgrid (暗色網格)
whitegrid(白色網格)
dark (深色背景)
white (白色背景)
ticks (刻度線)

選擇好自己想要的樣式後,我們便可以製作簡易的長條圖。例如: 筆者想要了解某家咖啡廳中的點餐人數,並用白色網格的背景來作呈現。這邊假定一個資料如下: (見圖二)

https://ithelp.ithome.com.tw/upload/images/20220924/20151873sJUwnqRqTX.png

圖二:筆者所建立的某家咖啡廳點餐人數、價格(為假定的資料)。

接下來,在Juypter 中開新的Notebook,設定x與y軸內容:

sns.set_style("whitegrid")
sns.barplot(x=["espresso.130NTD", " cappuccino.150NTD", " smoothie.80NTD"], y=[10, 24, 39])

便可出現以下長條圖: (見圖三)
https://ithelp.ithome.com.tw/upload/images/20220924/20151873ZSnrVH6zje.png

圖三: 以Seaborn作出的長條圖內容

雖然藍色、橘色和綠色此三個顏色,本身對於所欲分析的品項意義較低,但從此可看出,我們使用Seaborn就可以簡單地作出附有背景、顏色、數字、品項的簡易資料視覺化圖表。是很不錯的資料視覺化工具!

【備註】
本篇文章所參考與使用的學習資源如下:

  1. Bill Lubanovic著,《精通 Python:運用簡單的套件進行現代運算(第二版)》,台北市: 碁峰資訊,2020年。
  2. Seaborn官網: https://seaborn.pydata.org/index.html

上一篇
Day 8:用Matplotlib做出簡單的直條圖
下一篇
Day 10: 資料視覺化工具—Google Sheets與柱形圖
系列文
學習筆記: 以Python和資料視覺化工具完成簡易資料視覺化(Data Visualization)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
AndrewYEE
iT邦新手 3 級 ‧ 2023-07-10 20:46:24
sns.set_style("whitegrid")
sns.barplot(x=["espresso.130NTD", " cappuccino.150NTD", " smoothie.80NTD"], y=[10, 24, 39])
plt.show()

我要留言

立即登入留言