跳到主要內容

視覺化歷史演變


由剛開始早期的摸索發現坊間視覺化的圖表除了透漏資訊及資料訊息外,也呈現了歷史的痕跡,從歷史脈絡中發現不同時代的特點及意義,以下整理讀書心得。

 視覺化釋義
-具體是從1987年,美國國家科學基金會招開「科學計算研討會」報告提及Visualization in Scientific Computing「科學計算之中的視覺化」演變成Scientific Visualization ,「科學視覺化」。

-而後「資訊視覺化」( Information visualization ),逐漸開始興起,主要是對於抽象的異質性資料集的分析工作提供支援。
-現在則以「資料科學化」 (Data visualization)最為統稱,涵蓋「科學視覺化」、「資訊視覺化」及「可視化分析」等三領域。

視覺化簡史
大部份的書都是以時間軸描述視覺化史發展,有意思的是各時代的分類定義卻都不相同,每本書從不同角度切入,讓視覺化的感受更立體也明顯。
⧭17世紀前
       人類史上第一幅城市交通圖-羅馬城交通狀況:
       以手動呈現展示重要資訊。


  18世紀
   統計圖型學的繁榮時期,格蘭政治經濟學 作家普萊菲   (William Playfair)出版了《商業與政治圖集》(The       Commercial and Political Atlas),描述經濟資料與數量,及《統計祈禱書》(Statistical Breviary)

《統計祈禱書》(Statistical Breviary)

       鄂圖曼土耳其帝國在歐、亞、菲三洲土地分布

  ⧭19世紀
    1812-1812拿破倫進軍莫斯科歷史事件的流程視覺化圖,由法國人Charles Joseph Minard繪製,他是將視覺化用於工程和統計的先驅者,當時這張圖被譽為有史以來最好的統計視覺化,個人認為這張圖同時呈現地理位置、人數、溫度、時間及行軍路徑等五項訊息,當之無愧視覺化第一名的寶座非他莫屬。












以下這張圖是現代來看莫斯科和立陶宛的距離,若以當時初估一天走八小時,我們以每小時5公里計(急行軍一天走6公里,走8小時),一天共走40公里,193/40=4.8天,大約走五天可到莫斯科,軍隊走了一年才到。




  南丁格爾除了是位護士,其實也是一位統計學南丁格爾除了是位護士,其實也是一位統計學家。1854 年的克里米亞戰爭,她繪製了
 「東部軍隊死亡原因統計圖
 -24 3 個數值的資料,12組一個周期
 -色塊互相重疊
 -指出公共衛生條件惡劣才是影響死亡率的因素。
  20世紀
Harry Beck 英國的工程繪圖師
1931
倫敦地鐵路線圖

   20世紀初期啟蒙視覺化的基礎,而產生地鐵路線標準視覺化的方法沿用至今。


  20世紀中期開始加入多維資訊的編碼及統計圖形,而後運用放射技術至X光、電腦斷層掃描(CT)、核磁共振(MRI) 80年代末直線圖說文字 2: 紅色:因受傷而死亡士兵數直線圖說文字 2: 黑色 死於其它原因直線圖說文字 2: 藍色 死於可避免的感染的士兵數人們可直接與資訊互動。

現在的視覺化
21世紀
新的視覺化資料呈現,結合巨量、高維、多源及動態資料的分析整合。
如今以新的科學:「資料科學」為主要發展方向,專家們用DIKW體系,為資料(Data)、資訊(Information)、知識(Knowledge)與智慧(Wisdom)的層模型來說明。



 資料視覺化未來挑戰
分析視覺化資料時書中有建議須考量三方不同的約束:運算能力、感知和認知能力限制、顯示能力限制。
1. 運算能力的可擴充性:主要與系統及應用場合有關。巨量資料的清洗、轉換、分布和繪製演算法的計算為主要重點。
2. 感知和認知能力的限制:人類對於視覺化的感知能力及注意力是有限的,警覺性也是有限資源,視覺搜尋的能力只能維持數分鐘。
3. 顯示能力限制:像素外的執行,一次盡可能多顯示以減少瀏覽,但顯示太多使用者易產生視覺混淆,需權衡。




視覺化賞析及延伸閱讀 



參考書籍



留言

這個網誌中的熱門文章

如何快速註冊統合分析題目~以PROSPERO為例

初步檢索心中的愛 當心目中有一個理想題目時,為避免地球上另一個人也同時跟你想的一樣,而且還比我們早發表,若等我們發表時才發現,當下一定很扼腕,有了註冊系統除了幫自己先占好位子,也可以同時確認這個題目是否已經有人正在做了,不用浪費時間投注在上面。很多人其實不曉得實際上到底要如何註冊,以下一起註冊吧。 什麼是 PROSPERO??   PROSPERO (International prospective register of systematic reviews) 是一個國際前瞻性系統性文獻回顧評價系統,由美國國立衛生研究院 NIHR ( National Institute for Health Research )資助,由英國約克大學 CRD(Centre of Reviews and Dissemination) 創立,針對將已完成的評價或正進行中的計畫做紀錄。 目的:避免重複並減少報告偏見的機會,增加透明性。                 步驟流程 Step 1 :檢索主題 先確認其他人是否對這主題感興趣,有人捷足先登了嗎 ?? 也可以確認目前流行的趨勢是哪類型的研究等。 Step 2 :註冊帳號 ID 先到 PROSPERO 官網 ,填寫基本資料後註冊 ID 。 Step 3 :點選註冊文獻 review 要需先有帳號後才能註冊題目,進入頁面後依指示一步一步操作。 以下是網頁步驟,依研究對象是人群還是動物選擇按鈕點選,一般我們都是人群研究,選紫色。同時須確認以下五步驟是否都經過檢驗了。 第 1 步 檢查納入標準。 第 2 步 確保您的 protocol 處於(接近)最終形式。 第 3 步 搜尋 PROSPERO ,以確保評論尚未被註冊。 第 4 步 搜尋 PROSPERO ,以確保您沒有不必要地重複由另一個團隊進行的審核或先前已註冊的審核 第 5 步 開始註冊 Step 4 :點選相關事前準備工作進度。 這裡有一系列問題須皆回答完,才能進行下一步...

python與SAS資料處理-歸人與排除重複

  歸人顧名思義就是將一個人多筆的資料整合,每人只留下 1 筆。   通常取得的資料都是原始資料,並未經過整理。例如手上有疑份顧客購物紀錄,裡面有每個顧客在這 1 年內的每筆消費紀錄,這是一份以每次消費紀錄為 1 筆的紀錄形式,所以一個人可以有多筆的消費紀錄。當我們想要知道這些消費紀錄源自於多少顧客的購買時,這時候就需要用到歸人的概念,將資料轉換為每一個人只有 1 筆資料的紀錄形式 ( 如下圖所示 ) 。 以 SAS 進行資料歸人 歸人留 1 筆消費紀錄 proc sort data =cost; by ID time; run ; /* 在規筆前依照 ID 跟消費日期做排序 */ data cost_1; set cost; by ID; if first.id; run ;   /* 保留第一筆資料 */   之前已經有針對 proc sort 的排序語法進行說明,有需要可參考這篇 文章 , SAS 排序的設定值為升冪,也就是說每個人都會從最早那次的紀錄開始往後排序,所以用 first.id 就可以留下每個人最早那次的消費紀錄。 這邊也可以用排除重複的概念保留 1 筆資料 proc sort data =cost out =cost_2 nodupkey ; BY ID; run ; 利用 nodupkey ,將 ID 重複的資料刪除,僅保留每個 ID 第一次出現的該筆紀錄。   歸人累計所有消費金額 proc sort data =cost; by ID time; run ; data cost_1; set cost; by ID; if first.id then count= 0 ;/* 每個人第一筆資料都令 count=0*/ count+NT;/* 同 ID 累計 NT 數值 */ if last.id; run ;   除了要歸人以外,還要累計每個仁所有的消費金額,所以這邊就會創建一個 count 欄位,每一個人的第一筆 ID 令 count=0 ,在同樣 ID 時累加 NT 的數值,最後每個人保留最後一筆 ID ,也就是最後累計的總額。 以 Python 進行資料歸人...

使用python繪製Upset plot

  Upset plot 將集合視覺化,特別是當集合數大於 5 的時候, Upset plot 相較於 Venn plot 可以更清楚的呈現。 Upset plot 來自於 Venn plot 的變化, Venn plot 較常用於生物資訊呈現 ( 圖 1-3) ,但是往往會遇到集合數太多不易呈現的情況,從下圖可清楚看到當集合數為 4 的時候,畫面已經有些複雜,所以 Venn plot 的缺點就是當集合數過多時,畫面所呈現的資訊反而會造成視覺上的負擔,增加訊息解讀的困難性,失去視覺化的意義 — 方便閱讀,因此當集合數 ≥5 時不建議使用 Venn plot ,而後衍生出 Upset plot 。 Upset plot 優勢在於當集合數 ≥5 時可以清楚呈現資訊,不會造成視覺上的混亂。 2020 年影響全球的 COVID-19 ,在面對未知的流行病時沒有人可以確定真正有效的治療物,因此優先挑出具有高度可能性的藥物,嘗試用於治療病患,在高度不確定性的情況下會產生多種治療組合,這樣的情況就很適合採用 Upset plot 呈現 Real World 用藥資料,這裡有一篇發表於 CANCER DISCOVERY 的文章 ,這是一個很好的實務範例 ( 圖 4) ,以下擷取這篇 paper 的部份數據,簡單的做個 Upset plot 。 操作步驟 1. 選定主題,準備素材 以這篇文章中的數據來畫 Upset plot 圖 。開始執行前,需要先安裝 Upset plot 的套件。在 Window 環境下,開起命令提示字元,輸入 pip install upsetplot ,安裝完成後,就可進入繪圖步驟。   2. 繪製 Upset plot 這邊帶入 paper 中前 10 筆的數據。 from upsetplot import generate_counts from upsetplot import plot from upsetplot import from_memberships example = from_memberships([['Azithromycin','Hydroxychloroquine'], ['Hydroxychloroquine'...