雷達圖一般在商業領域較為常見,可以用來表示某件事情上不同屬性的影響,因此適用於多維數據,一般建議在4~6維間,維度過高會影響判讀。雷達圖的好處是相較於長條圖,可以有較多的維度,幫助使用者掌握整體概況,但是相對來說變數間的比較不易。
在這基本概念下利用python的Plotly套件來繪製堆疊區域圖。目前醫療相關的開放資料中没有比較適合做雷達圖的數據集,因此以陽明山國家公園遊客滿意度調查資料來呈現。
以下針對陽明山國家公園遊客滿意度調查做簡單的介紹:
² 調查對象:至陽明山遊客中心與龍鳳谷、二子坪、小油坑等9個遊客服務站之遊客。
² 問卷:除基本資料外,對遊客滿意度/重視度的調查分成解說設施、公共設施、遊客服務以及心理體驗等4個面向,細項的部分並非本文重點,便不多加著墨。
在滿意度/重視度的調查,每位遊客需分別填寫對各項目的重視度以及滿意度程度。
操作步驟
1.選定主題,準備素材
以2016年陽明山國家公園遊客滿意度調查為例(陽明山國家公園公開資料),了解各面向重視度以及滿意度的吻合情況。開始執行前,尚未安裝plotly者需要先安裝plotly套件,在Window環境下,開起命令提示字元,輸入pip install plotly,安裝完成後,就可進入繪圖步驟。
2.確認繪圖需要用到的參數:
變量: 解說設施、公共設施、遊客服務以及心理體驗的滿意度得分。
變量: 解說設施、公共設施、遊客服務以及心理體驗的滿意度得分。
3.繪製雷達圖
這次採用各分層在同一圖層做建構,省去合併處理的語法。
- import plotly.graph_objs as go
- import plotly.offline as py
- data = [
- go.Scatterpolar(
- r = df["All_2"],
- theta = df["item"],
- fill = 'toself',
- name = '龍鳳谷滿意度',
- line=dict(width=2,
- color='#BEC23F')
- ),
- go.Scatterpolar(
- r = df["All_1"],
- theta =df["item"],
- fill = 'toself',
- name = '總體滿意度',
- line=dict(width=2,
- color='#24936E')
- )
- ]
- layout = go.Layout(
- polar = dict(
- radialaxis = dict(
- visible = True,
- range = [0, 5] #設定分數range
- )
- ),
- showlegend = False
- )
- fig = go.Figure(data=data, layout=layout)
- py.plot(fig, filename = "radar_multiple")
從這裡可以看出龍鳳谷的各項滿意度皆優於總體平均,不過分數都非常接近的情況下,兩者會幾乎重疊,不容易辨識。
留言
張貼留言