圓餅圖主要是呈現整體中各組成間所佔的比例,是一個相對的概念,但如果想看的是各組成間絕對的差異,那一般則是採用長條圖呈現。
當然這部分也能用長條圖(Bar chart)作呈現,只是兩張圖切入的觀有點些不同。
除此之外在繪製圓餅圖時不建議用3D圓餅圖,因為視覺上對角度的大小辨識較不敏銳,加上3D圖的呈現更添視覺判讀的難度,有時候甚至會產生誤判的情況。
在具備以上基本概念後,我們利用python的Plotly套件來繪製圓餅圖。這次分別以2008年、2018年來台旅客人次的資料做示範(資料來源為交通部觀光統計資料庫)。
觀光收益為賺取外匯的重要來源
全球經濟發展的推動下,2018年國際旅遊的人數較之前增加了5%,比原先UNWTO的預測提早2年達到14億人次大關,在此同時全球觀光產業收益增長到1.7兆美元。如此龐大的經濟效益顯示觀光產業儼然已成為許多國家賺取外匯的重要來源。
因應這樣具重要性之議題,我們分別以台灣2008年、2018年這兩年的來台觀光旅客人次用圓餅圖呈現,這部分參考觀光交通部觀光統計資料庫的旅客分類將之區分為7類,以下整理做表呈現:
操作步驟
1.選定主題,準備素材
以2008年、2018年來台灣觀光旅客人次資料做為操作範例(資料來源為觀光交通部觀光統計資料庫)。
這個範例不只利用圓餅圖內佔比的大小表示各國旅客佔總體來台觀光旅客的比例,還融入了另一個概念,利用圓餅圖的大小(總面積)呈現不同年分總體旅客人次的多寡,也就是將一個圓餅圖作2個概念的呈現。
2.確認繪圖需要用到的參數:
圓餅圖比例:各國旅客人次
3.繪製圓餅圖
這邊要說明一下Plotly內建的語法可以將繪圖區切割成2以上的部份,不過依本範例操作的需求僅切成左右2個部分即可,並利用內建的語法依據這兩個年份總旅客人次比例計算餅的相對大小(總面積)。
import plotly.graph_objects as go from plotly.subplots import make_subplots labels = ["中國大陸", "港澳", "日本", "南韓", "新南向國家","歐美","其他"] sunflowers_colors = ['#F4A7B9', '#E16B8C', '#66BAB7','#9B90C2', '#A5DEE4','#A8497A','#4E4F97'] #設定圓餅圖各分類的顏色 fig = make_subplots(1, 2, specs=[[{'type':'domain'}, {'type':'domain'}]], subplot_titles=['2008', '2018']) #這邊會將空間切成左右2個部分,並計算兩個圓餅圖的相對大小 fig.add_trace(go.Pie(labels=labels, values=df["year_97"], scalegroup='one', name="2008年旅客人次",marker_colors=sunflowers_colors), 1, 1) fig.add_trace(go.Pie(labels=labels, values=df["year_107"], scalegroup='one', name="2018年旅客人次",marker_colors=sunflowers_colors), 1, 2) fig.update_layout(title_text='來台灣旅客人次') #設定圖標題 fig.show()
當然這部分也能用長條圖(Bar chart)作呈現,只是兩張圖切入的觀有點些不同。
留言
張貼留言