跳到主要內容

發表文章

使用python繪製視覺化--堆疊區域圖

區域圖是基於折線圖延伸出的圖表,因此具有折線圖的優勢,一覽整體趨勢。相較於折線圖,區域圖還可透過面積來呈現數據多寡,做不同分類之間的比較。區域圖分為 2 種,堆疊區域圖與百分比堆疊區域圖,後者概念似百分比堆疊長條圖,以各個值所佔的百分比呈現。 在這基本概念下利用 python 的 Plotly 套件來繪製堆疊區域圖。這次以腸病毒為主軸,在開始操作前先做個知識補充,對腸病毒有個基本概念。 腸病毒基礎概念 : 往年隨著開學季開始,總能在新聞報導上看到腸病毒的蹤跡,伴隨著家長的恐慌,我們對腸病毒的認知有多少 ? n   病毒型態 : 腸病毒屬於小 RNA 病毒科,可以分成 5 種類型,小兒麻痺病毒、     克沙奇病毒 A 型、克沙奇病毒 B 型、伊科病毒、腸病毒 68-71 型,其特性因為生長於     腸胃道而總稱為腸病毒。 n    傳染途徑 : 有 3 種,糞口傳染、飛沫傳染以及接觸傳染。 n      疾病症狀 : 感染者多數不會出現症狀或出現發燒等類似一般感冒的輕微症狀。常      引起 手足口病及疱疹性咽峽炎,有些時候則會引起一些較特殊的臨床表現,包括      病毒性腦炎、 無菌性腦膜炎、心肌炎、肢體麻痺症候群、急性出血性結膜炎、      腦炎或急性無力脊髓炎等。 三歲以下幼童感染則要特別注意,容易併發腸病毒重症。 n      流行情況 : 不見得每年皆會發生 腸病毒 大流行,但 腸病毒的流行的情況具有季節性, 5月開始疫情逐漸升溫, 6-7 月達到流行高峰期 。台灣位於亞熱帶地區,所以全 年皆有病例發生 。疾管署 例行性針對腸病毒感染病例檢出之病毒型別進行 監測 ,如果大家有興趣可以到疾管署的網站上了解疫最新的情資訊。 操作步驟 1. 選定主題,準備素材 以 2018 年每週腸病毒病毒分離型別 為例 ( 資料來源為疾管署開放資料 ) ...

使用python繪製視覺化--折線圖

折線圖主要是用來呈現連續性的變化,也就是趨勢,利用線條斜率的改變,讓人短時間內取得長期變化的資訊。 在這基本概念下利用 python 的 Plotly 套件來繪製基本款折線圖。 操作步驟 1. 選定主題,準備素材 以口腔 癌症歷年標準化發生率為例 ( 資料來源為整理衛生署開放資料 ) ,來看不同性別的發生率趨勢。開始執行前,尚未安裝 plotly 者需要先安裝 plotly 套件,在 Window 環境下,開起命令提示字元,輸入 pip install plotly ,安裝完成後,就可進入繪圖步驟。 2. 確認繪圖需要用到的參數 : X 軸 ( x ): 年份 ( 西元年 ) Y 軸 ( y ): 標準化發生率 ( 每十萬人口 ) 3. 繪製堆疊長條圖 操作時每一個分層要各別建構 ( 例如 : 分別呈現男女的發生率 ) ,再把各分層的圖層結合成一張圖。 import plotly.graph_objs as go import plotly.offline as py #分層為男性 trace0 = go.Scatter( x = df['year'], y = df['Male'], name = 'Male', line = dict( color = ('#1B813E'), width = 4, #設定線條寬度) ) #分層為女性 trace1 = go.Scatter( x = df['year'], y = df['Female'], name = 'Female', line = dict( color = ('#86C166'), width = 4) ) data = [trace0, trace1] layout = dict(title = '口腔癌標準化發生率', titlefont=dict(family='Courier New, monospace', siz...

使用python繪製視覺化--堆疊長條圖

堆疊長條圖屬於長條圖的一種,可以做組內、組間比較。 ²   組內比較 : 同一個長條中不同項目所佔的比重。 ²   組間比較 : 比較不同長條圖中,某一個項目佔的比重大小。 有了基本的概念與構思好主題後,就可以 利用 python 的 Plotly 套件來繪製簡單的堆疊長條圖了。 🌞操作步驟 1. 選定主題,準備素材 以 2015 年 10 大癌症診斷的臨床期別分佈為例 ( 資料來源為整理國健署癌症開放資料 ) ,來看不同癌症診斷時的期別分佈情況。開始執行前,尚未安裝 plotly 者需要先安裝 plotly 套件,在 Window 環境下,開起命令提示字元,輸入 pip install plotly ,安裝完成後,就可進入繪圖步驟。 2. 確認繪圖需要用到的參數 : X 軸 (x): 不同期別所佔的比例 (%) Y 軸 (y): 各癌症的分類 3. 繪製堆疊長條圖 這邊要注意一下,操作時每一個分層要各別建構,再把各分層的圖層結合成一張圖。 import plotly.graph_objs as go import plotly.offline as py #分層為stage0 data1= go.Bar( y=df['stage0_rate'], #y軸欄位 x=df['Cancer'], #x軸欄位 name='stage0') #圖例名稱 #分層為stage1 data2= go.Bar( y=df['stage1_rate'], x=df['Cancer'], name='stage1') #分層為stage2 data3= go.Bar( y=df['stage2_rate'], x=df['Cancer'], name='stage2') #分層為stage3 data4= go.Bar( y=df['stage3_ra...

從統計學視角談 商業周刊:百憂解撤台背後的砍藥價危機(61%醫師、專家:健保藥已經不堪用)

                                                                                                                         撰文:李商琪 數學、機率、統計的關聯性 對世界或生活有疑惑,大部分的人會問這是什麼 ? 對我有幫助嗎 ? 什麼樣的決定是較好的 ? 我們對世界的全貌一知半解,統計解決了我們的好奇心,用數據看社會現象了解我們所處的環境。 近期熱點議題: 頻砍藥價原廠藥恐出走健保擬保障藥品「地板價」生活 - 自由時報電子報 2019/03/29 防原廠藥出走健保擬保障藥品「地板價」 2 元起跳|蘋果新聞網|蘋果日報 2019/03/29 抗憂鬱藥品撤台揭背後的砍藥價大廠出走危機 - 財經 - 中時電子報 2019/03/30 ………… 商周 1637 期報導: 61 %醫師、專家:健保藥已經「不堪用」 數據的重要性—從資料來源開始 我們接受的資訊是否都需相信呢 ? 最近健保藥的砍藥危機,使得某些藥廠將退出台灣市場,請問以下的訊息真實性及可信度如何呢 ? 這份問卷的目的因該是讓大家快速了解健保砍藥造成的影響,資料來源為 181 位醫師與醫療、藥物專家,對象不只有醫師還有醫療和藥物專家,以下簡述問題, Q1 :近年您的臨床治療,有無感受到醫療專業要因成本考量而有所妥協? 這題的對象是醫師,才具有診斷及開藥能力,若為醫療或藥物專家是否具有相同能力,回答者中有 96% 人...

【懶人圖解簡報術】-秒懂圖解技術正流行。將複雜變簡單的好幫手。

https://www.books.com.tw/products/0010814914 看完本書後,以「台南智慧城市 - 資料視覺應用挑戰賽」參賽作品文案,重新設計排版。 實做體驗 目的:提供台南市糖尿病的親友 / 民眾,選擇離家近的醫療單位,或合適的醫師就醫,藉由簡報說明期望大家能使用視覺化的網站做搜尋。 如何發想圖解簡報 ? 首要清楚明白這簡報做給誰看,須走入人心換位思考,最後預測問題。作者提供十種熱門主題架構供參考模擬。 轉換專業術語 除了運用經驗讓觀眾感同身受外,也須懂得設計情境,建立觀眾腦中的清楚框架,書中建議以 SCAN 法則架構。 Situation( 現況 ) 、 Consequence( 後果 ) 、 Aims( 目標 ) 、 Need( 解法 ) 等,牽動觀眾的心情建立記憶點。 從無到有的圖解簡報 作者製作懶人包讓你可以依循簡單步驟作出圖表來,是一個很好的指導篇幅,可以讓自己快速進入流程中,除了友好的主題及構想,也需要有順暢的排版原則。 我總認為眼睛的舒適度是重要的,不只排版,連色彩、位置、留白等都需花心思構圖,若沒有好的藝術天份,至少極簡風格是不易出錯的選項,讓畫面顏色少,空白多,排列整齊,基本上作出來的簡報很難道不起眼的程度,至少閱讀舒適無負擔。 說再多都沒有用,立馬實做,過程中記憶與熟悉度才會留存,透過記錄可幫助自己修正 ,並增加成就感 ,推薦大家趕快試試 。 相關連結 懶人圖解簡報術購買

使用python繪製視覺化--橫向長條圖

長條圖是利用長條長度的不同來表示數量 ( 百分比 ) 的多少 一般在使用上常常會把長條圖跟直方圖搞混。 長條圖 的主要特徵是 長條間 不相連 ,類別間可以任意調換位置,因此一般會使用在非 連續型資料 上,例如 : 不同城市的人口數、不同產品的銷售量。 直方圖則是長條間 相連 ,因此一般會使用在 連續型資料上,例如 : 身高分佈。 這次就利用 python 的 Plotly 套件來繪製簡單的橫向長條圖。 操作步驟 1. 選定主題,準備素材 以 2012 年 10 大癌症藥費佔醫療花費的比例為例 ( 資料來源為政府開放資料 ) 。開始執行前需要先安裝 plotly 套件,在 Window 環境下,開起命令提示字元,輸入 pip install plotly ,安裝完成後,就可進入繪圖步驟。 2. 確認繪圖需要用到的參數 X 軸 ( x ): 各癌症的分類 Y 軸 ( y ): 各癌症藥費佔醫療花費的比例 (%) 3. 繪製長條圖 語法 : import plotly.graph_objs as go import plotly.offline as py data= [go.Bar( y=df_hb['Cancer'], #y軸欄位 x=df_hb['med_rate1'], #x軸欄位 orientation='h', #調整成橫向 text=df_hb['med_rate1'], #長條圖上標示資料數值 textposition = 'auto', #長條圖上標示資料數值的位子,有auto、inside、outside可以做設定 #長條圖顏色設定 marker=dict( color='rgb(158,202,225)', #長條圖填滿部分顏色設定 line=dict(color='rgb(8,48,107)')) #長條圖外框顏色設定 )] #圖表外層設定 layout=go.Layout( title='2012年十大癌症藥費佔比', t...

使用python繪製視覺化--動態泡泡圖

近年視覺化受到很高的關注熱度,生硬的數據藉由視覺化帶出了靈魂,拉近了溝通的距離,達到訊息的有效傳遞,成大教授呂宗學老師對視覺化有一段很精闢的闡述 : 「視覺化的目的,幫助觀眾在茫茫數據中,找到原本想要找數據,發現原本看不到的問題。」。 本著這個想法,將政府開放的公開數據做運用,以較容易理解的方式做視覺化呈現,起初選定台灣公部門使用度較高的 Tableau 軟體,希望能將歷年累積的數據用動態的方式呈現於網頁上,但嘗試後發現, Tableau 動態泡泡圖僅能於儀錶板上呈現,發佈成網頁後就無動態播放的功能,且於 2012 年開始就有相關使用者反應希望未來可以有這項功能,只是截至 2018 年底仍未有這項功能 ( 如果希望 Tableau 新增這項功能,可以來此投票 : https://community.tableau.com/ideas/1201 ) 。 有鑑於此,與其受限於現有的軟體功能不如轉個彎使用 python , python 有相當多的軟體套件可以運用,基本上可以涵蓋大部分想要呈現的視覺化做圖。 這次介紹一個比較簡單的套件 bubbly , bubbly 套件運用 Plotly 套件的一些功能,畫出動態泡泡圖,讓使用者可以不用撰寫繁複的語法,只要對 python 有基本的概念,就可以運用 bubbly 套件,帶入參數,畫出如同 Hans Rosling 在 TED Talk 令人讚嘆的視覺化呈現。 泡泡圖是一種散佈圖的變化型,將原本的沒有提供資訊的點替換成泡泡,利用泡泡的大小提供多一個維度的訊息 操作步驟 1. 選定主題,準備素材 以 2012-2016 年 10 大癌症醫療花費及死亡率變化為例 ( 資料來源為政府開放資料 ) ,畫出動態泡泡圖。開始執行前需要先安裝套件 bubbly 跟 plotly ,在 Window 環境下,開起命令提示字元,輸入 pip install bubbly 以及 pip install plotly ,安裝完成後,就可進入繪圖步驟。 2. 確認繪圖需要用到的參數 : X 軸 (x_column): 各癌症醫療花費總額 ( 單位 : 新台幣億元 ) Y 軸 (y_column): 各癌症死亡率 (%) 泡泡大小 (size_column): 各癌症就醫人數 泡泡顏...