AI助你繪製更漂亮圖表!透過Seaborn,輕鬆呈現資料。從台灣信用卡盜刷數據看金額損失趨勢,用折線圖展示。Seaborn畫圖簡單,還可畫分佈圖、多因子分析圖。想看變量關係就用Seaborn吧!詳細教學可上Kaggle搜尋。
資料視覺化-Seaborn 既然有了AI,更好幫你操作繪圖。建議直接用Seaborn,更漂亮。
載入 除了載入matplotlib.pyplot
之外,現在需要載入seaborn
,多簡稱為sns
台灣信用卡盜刷統計 你知道每年台灣因為信用卡被盜刷,損失的金額嗎?
透過Open Data,可以看出台灣越來越有錢?
1 2 url = 'https://www.nccc.com.tw/dataDownload/09_NCCC_Member_Banks_Card_Issuing_Fraud_Types.csv'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ''' 五、詐欺型態: (一)遺失卡:卡片遺失而被盜用、 (二)被竊卡:卡片被竊而發生盜用、 (三)未達卡:郵寄新、換卡遭攔截而發生盜用、 (四)冒用申請卡:使用未經本人授權申請之卡片、 (五)偽卡:使用未經發卡機構授權製作之卡片、 (六)MOTO/EC:未經持卡人授權之非面對面交易、 (七)多刷帳單之詐欺:商店利用持卡人卡號等資料偽造交易、 (八)其他:不屬於上述標準詐欺類型者。 ''' import pandas as pd df = pd.read_csv(url, encoding='big5' ) df[df['年度' ]==2023]
年度從2010~2023的MOTO/EC 1 2 3 4 5 moto_ec_df = df [(df ['年度' ] >= 2010) & (df ['年度' ] <= 2023) & (df ['詐欺型態' ] == 'MOTO / EC' )] moto_ec_df
可以看到從4億到2023已經變成32億了!誇張吧!
這種趨勢就適合用折線圖,呈現連續的統計資料
繪製折線圖 事前準備 1 2 3 4 5 6 7 8 9 10 import matplotlib.pyplot as plt %matplotlib inline import matplotlib.font_manager as fm # 如果是COLAB要先下載繁體中文字型 !wget -O TaipeiSansTCBeta-Regular.ttf https: #將字型加入,確認系統字型 fm.fontManager.addfont('TaipeiSansTCBeta-Regular.ttf' ) [f.name for f in fm.fontManager.ttflist] #全局參數設定 runtime configuration,字體設為可呈現中文的字體 plt.rc('font' , family='Taipei Sans TC Beta' )
Matplotlib繪製 先以Matplotlib繪製,使用plot():
x
:X 軸的數據,通常是一個序列或數組。
y
:Y 軸的數據,與 X 軸數據相對應。
1 2 3 4 5 6 7 8 9 10 11 import matplotlib.pyplot as plt plt.figure(figsize=(12, 6)) plt.plot(x =moto_ec_df['年度' ], y =moto_ec_df['詐欺金額[新台幣]' ], marker ='o' ) plt.title('2010-2023年 MOTO/EC 詐欺金額趨勢' ) plt.xlabel('年度' ) plt.ylabel('金額' ) plt.grid(True ) plt.show()
Seaborn繪製 再使用Seaborn,基本上只是把plot()
改成lineplot()
,圖也是差不多的
1 2 3 4 5 6 7 8 9 10 11 12 13 import matplotlib.pyplot as plt plt.figure(figsize=(12, 6)) sns.lineplot(x ='年度' , y ='詐欺金額[新台幣]' , data =moto_ec_df, marker ='o' ) plt.title('MOTO/EC 詐欺案件數趨勢 (2014-2023)' ) plt.xlabel('年度' ) plt.ylabel('詐欺金額' ) plt.grid(True ) plt.show()
Seaborn可以畫什麼酷圖 以台股2330台積電這兩個月的每日資料來做統計(資料使用findmind先抓下來了)
1 2 df_stock = pd.read_csv ('/content/台灣股價資料表.csv' ) df_stock.head ()
分佈圖 1 2 3 4 5 6 7 8 9 10 # prompt: 畫分佈圖 import matplotlib.pyplot as plt plt.figure (figsize=(12 , 6 )) sns.histplot (df_stock['收盤價' ], kde=True) plt.title ('收盤價分佈圖' ) plt.xlabel ('收盤價' ) plt.ylabel ('頻率' ) plt.show ()
多因子分析圖 hue
為圖表依據,這裡以成交量為hue
,可以看個成交量之間的二因子分析
1 sns .pairplot(data =df_stock,hue='成交量')
總結 簡單來說,如果繪製的是簡單圖形,可以使用Matplotlib或Seaborn都可以。如果要查看變量之間的關係,建議使用Seaborn,有更多的圖形工具,來觀察結果。
Seaborn Cheat Sheet 如果要詳細的Seaborn教學,Kaggle上一樣有很多人的用法整理!
https://www.kaggle.com/code/themlphdstudent/cheat-sheet-seaborn-charts