視覺化模組型錄:十九種看見台灣數據的方法

Taiwan.md 的文章視覺化模組活範例——用真實的台灣居住、人口、醫療與國會數據,把每一種 tw-* 視覺模組渲染一次,搭配 graph.md 的語法與設計原則一起看。

視覺化模組型錄:十九種看見台灣數據的方法
圖片: Heeheemalu · CC BY-SA 4.0 · 原始來源

30 秒概覽: 這一頁是 Taiwan.md 視覺化系統的「活範例」——把十九種文章內視覺模組各渲染一次,全部用真實的台灣數據(房價所得比、國宅、高齡化、公投、護病比、立院席次)。它是編輯指南 graph.md 的搭檔:graph.md 講「何時用哪種、怎麼做才好、語法怎麼寫」,這一頁讓你直接看到「長什麼樣」。 每個模組都是純 HTML/SVG 渲染的,所以人、螢幕閱讀器、Google、AI 爬蟲都讀得到同一份數據——這正是我們選擇靜態視覺化而非互動圖表的理由。

寫一篇談數字的文章時,最怕的是把資料寫成一段一段的數字堆疊,讀者讀到第三個百分比就放空了。視覺化的工作,是把「一段密集的數字 prose」逆熵成「一眼可讀的結構」。

但 Taiwan.md 的視覺化有一條別人沒有的紀律:我們只做「讓 LLM 也讀得懂」的視覺化。一張用 D3 或 Canvas 畫的互動圖表很炫,但 GPTBot、PerplexityBot、ClaudeBot 這些 AI 爬蟲不會跑 JavaScript,對它們來說那張圖是一片空白。而我們用 semantic HTML 跟 inline SVG 做的圖,數據就在原始碼裡,AI 在六種語言裡都讀得到、引用得到台灣的第一人稱數據。讓 LLM 讀得懂的視覺化,就是主權的視覺化。

下面十九個模組,從最簡單的「一個大數字」到「縣市磚圖」「席次弧」,依序展示。語法寫法跟設計原則的完整版本在 graph.md,這裡只放一句「這是什麼、什麼時候用」。

數據大字 tw-figure

最簡單也最有力的一種:把一個戲劇性的數字放到最大,前後對照講一個轉化。適合當開門見山的「sledgehammer stat」。

6.7 萬87 萬 / 坪
台北成功國宅 1985 年的滯銷配售價,到 2026 年的房仲均價——同一個門牌,約 13 倍
資料來源:實價登錄房仲平台(成功國宅)

數據組 tw-stat

當一個段落塞了三四個並列的關鍵數字,與其寫成一句長句,不如排成一列卡片,讓讀者一眼掃完。

174,891 戶
政府直接興建的國宅
1976–1999
39 萬餘戶
廣義國宅總量
至 2015 年廢止
84.4%
全台自有住宅率
2024 年

資料來源:行政院廢止國民住宅條例新聞稿、內政部不動產資訊平台

含數據的編輯模組(數據組、對比卡、政策軸)跟圖表模組一樣要標 來源:。2026-07 的全站審計發現,被自動閘門盯著的模組來源標註率 100%,沒被盯的正好是這三個高頻模組,四成範例裸奔。現在它們也進了 viz-health 閘門。

對比卡 tw-versus

兩種制度、兩種立場、或前後兩個狀態的逐點對照。左暖色、右冷色,中間一個「vs」,讓差異一行一行讀下來。

台灣國宅
vs
香港居屋
台灣國宅政府補貼、便宜賣給住戶
香港居屋政府補貼、便宜賣給住戶
台灣國宅住滿一年即可全市價轉售
香港居屋公開市場轉售須先「補地價」
台灣國宅增值幾乎全歸個人
香港居屋增值按原折扣比例回收公庫
台灣國宅公共存量一次性流失
香港居屋公共讓利收得回來

資料來源:立法院公報、香港房屋委員會

比例條 tw-bars

少量類別的數值比較或排名,水平條的長度會自動依數值縮放,最大值撐滿。資料模組記得在最後加一列 來源:,會自動變成下方的來源標註。

全國 2014
8.41 倍
全國 2024
10.76 倍
台北 2024
16.60 倍 歷史峰值

資料來源:內政部不動產資訊平台、政大不動產研究中心

方格圖 tw-waffle

部分對全體的比例組成,一百格代表一百趴,比圓餅圖更直覺——你可以真的數格子。適合「各類別佔多少」加總約等於 100 的數據。

維也納的住宅組成(2023)
市營社宅 21.9限利潤社宅 21.4自有住宅 20.4私人租賃 36.3

資料來源:維也納市政府(Stadt Wien)住宅統計

政策軸 tw-timeline

制度或政策的關鍵節點脈絡,用節點時間軸串起來。注意這是「視覺輔助」,跟正文小標題不能用編年體(「1975 年…」當標題)是兩回事。

1975
國宅條例上路
政府蓋了賣,設「買家資格」閉環,補貼跑不掉
2002
那道牆被拆掉
修法取消買家資格限制,國宅住滿一年可賣給任何人
2015
國宅條例廢止
官方理由:自有住宅率已 85%,改走只租不售的社宅
2026
桃園把閘門裝回
可負擔住宅:轉售不得超過原承購價

資料來源:立法院公報、行政院廢止國民住宅條例新聞稿

引語卡 tw-quote

當一句話就能代表整篇的核心張力,把它放大成引語卡。引文不用自己加「」,模組會加。引語必須是逐字、可查證的。

市價 3000 萬元的房子,變成 6000 至 7000 萬元的房子……劫貧濟富,國家出錢幫有錢人改建房子
林智群,律師,2025 年批「國家出錢替成功國宅都更」提案

來源條 tw-source

把一段分析的資料來源集中成一個低調的 chip,放在段落旁邊。可信度是策展的一部分——台灣數位媒體常常忘了標來源,這是我們可以做得不一樣的地方。

內政部不動產資訊平台、實價登錄、政大不動產研究中心、立法院公報、香港房屋委員會

說明盒 tw-note

數據文章的可信度有一半在「你怎麼算的」。報導者在資料新聞裡用【說明】區塊交代計算方式、用(註)標記更正,我們把這個公約做成模組。第一列寫 說明方法更正更新 之一,其餘每列自成一段。

折線圖 tw-line

四個以上時間點的趨勢,用 inline SVG 畫成折線,y 軸的上下限會標出來讓讀者看見範圍。最關鍵的是——它會自動產生一份隱藏的資料表,讓螢幕閱讀器跟 AI 爬蟲讀到原始數據。圖是給人看的,表是給機器讀的,兩者同源。

全國房價所得比的十年攀升(倍)
全國房價所得比的十年攀升(倍)10.768.412014201820242014 起點 8.41全國
全國房價所得比的十年攀升(倍)(基準線:2014 起點 = 8.41)
全國
20148.41
20169.32
20188.57
20209.2
20229.61
202410.76

資料來源:政大不動產研究中心、內政部不動產資訊平台

折線圖也支援基準線:加一列 基準:標籤 | 值,會畫成虛線、沒有端點、只有一個標籤,跟實測序列在視覺上分得開。讀者不會把一條固定門檻誤讀成被測量出來的數據。

斜率圖 tw-slope

當你只有「兩個時間點」,折線圖會浪費掉中間的空白。斜率圖直接讓兩端連線的傾斜度說話,誰漲得兇、誰追過誰,一眼看完。標籤開頭加 * 可以強調某一列,其餘列自動退灰當脈絡。

房價所得比:十年之間誰漲得兇(倍)
房價所得比:十年之間誰漲得兇(倍)20142024全國 8.4110.76台北 12.016.60
房價所得比:十年之間誰漲得兇(倍)
20142024
全國8.4110.76
台北12.016.60

資料來源:內政部不動產資訊平台、政大不動產研究中心

熱力圖 tw-heatmap

地區×指標、或年×類別的矩陣比較。每一欄各自正規化成色深,數字越大越暖。它本身就是一個 HTML 表格,所以天生就是 AI 可讀的——這也是熱力圖在我們系統裡比「一張彩色圖片」好的原因。

縣市房價所得比(倍)房貸負擔率(%)
台北16.6063.9
新北13.0356.9
台中11.1148.0
桃園9.040.0

資料來源:內政部不動產資訊平台

點圖 tw-dot

長條圖比「量」,點圖看「分布」:所有的點落在同一把尺上,你看得到誰擠在一起、誰是離群值。每列一個值就是 dot strip;給兩個值會畫成「從這裡到那裡」的區間;給三個值(點估 | 下界 | 上界)會畫成民調式的「點估+不確定區間帶」。±3% 的抽樣誤差不該被吃掉,這是選舉年最常失守的誠實呈現。* 一樣可以強調。

高齡化率的兩極:最年輕到最老的縣市(65 歲以上占比,%)
新竹縣
15.08 全台最年輕
桃園
16.72
台中
17.40
新北
19.95
台南
20.48
高雄
20.79
嘉義縣
24.11 全台最老
台北
24.18 六都最老

資料來源:內政部戶政司,2025 年底

堆疊條 tw-stack

方格圖適合「一個整體」的組成;堆疊條適合跨好幾列比較組成——每列自動正規化成 100%,段落夠寬會直接把數值標在色塊裡。

三場核能公投:同意 vs 不同意(有效票占比 %)
同意不同意
2018 以核養綠
59
41
2021 重啟核四
47
53
2025 核三延役
74
26
三場核能公投:同意 vs 不同意(有效票占比 %)
公投同意不同意
2018 以核養綠5941
2021 重啟核四4753
2025 核三延役7426

資料來源:中央選舉委員會三場公投官方審定結果

金字塔 tw-pyramid

背對背的長條,左右各一個陣營,中間共用標籤,是人口學的經典圖型。這裡用它看六個縣市的「頭重腳輕」:左邊是小孩,右邊是老人,兩邊一比,高齡化就不是一個抽象的百分比了。

頭重腳輕:六縣市的幼年 vs 老年人口占比(%)
0–14 歲
65 歲以上
14.80
新竹縣
15.08
13.13
桃園
16.72
12.75
台中
17.40
11.97
台北
24.18
9.28
基隆
22.28
8.27
嘉義縣
24.11

資料來源:內政部戶政司 2025 年底;幼年占比由高齡化率 ÷ 老化指數 × 100 推算

縣市磚圖 tw-tiles

台灣的 choropleth 地圖有兩個老問題:花蓮台東面積大到搶走視覺重量,AI 手繪的台灣形狀常常變成「介於橄欖與馬鈴薯之間」。磚圖把 22 縣市排成等大的磚塊(佈局寫死在系統裡,照真實的相對位置),每塊磚一樣重,數字直接寫在磚上。形狀永遠是對的,因為根本不畫形狀。

全台 22 縣市高齡化率(65 歲以上人口占比,%)
連江17.14
台北24.18
基隆22.28
桃園16.72
新北19.95
宜蘭20.77
金門19.69
新竹市16.16
新竹縣15.08
苗栗20.23
台中17.40
花蓮21.52
彰化20.37
南投22.66
澎湖21.03
雲林21.76
嘉義市19.90
嘉義縣24.11
台南20.48
高雄20.79
屏東21.84
台東20.93
15.0824.18
全台 22 縣市高齡化率(65 歲以上人口占比,%)
縣市數值
台北24.18
新北19.95
桃園16.72
台中17.40
台南20.48
高雄20.79
基隆22.28
新竹市16.16
嘉義市19.90
新竹縣15.08
苗栗20.23
彰化20.37
南投22.66
雲林21.76
嘉義縣24.11
屏東21.84
宜蘭20.77
花蓮21.52
台東20.93
澎湖21.03
金門19.69
連江17.14

資料來源:內政部戶政司,2025 年底

單位圖 tw-iso

「174,891 戶」是一個讀過就忘的數字;九個可以用手指數的圓點不是。單位圖把大數字換成「一個符號=多少」的可數單位,這是報導者做遠洋漁業專題時的心法:把無感的龐大數字,換成民眾有感的單位。符號只用整數(不切半個),精確值寫在旁邊。

政府這 24 年蓋了多少國宅
政府直接興建
174,891 戶 1976–1999
廣義國宅總量
390,000 餘戶 至 2015 年廢止

● ≈ 20,000 戶

資料來源:行政院廢止國民住宅條例新聞稿

席次弧 tw-arc

議會的席次組成有自己的專用圖:半圓點陣,一席一點,政黨照列出順序排成連續的扇形。圓餅圖比的是角度(人眼很不擅長),席次弧讓你直接數點,過半線直接畫在該在的位置。這裡用 2024 年立委選舉的結果:113 席、三黨不過半,那條虛線就是後來大罷免整場拉鋸的起點。注意它是議會的圖:22 縣市長那種「一區一個贏家」的選舉,該用下面的縣市磚圖。

2024 立法院席次:三黨不過半(113 席)
2024 立法院席次:三黨不過半(113 席)過半 57113
國民黨 52民進黨 51台灣民眾黨 8無黨籍 2 偏泛藍
2024 立法院席次:三黨不過半(113 席)
數值
國民黨52
民進黨51
台灣民眾黨8
無黨籍2

資料來源:中央選舉委員會

小倍數網格 tw-multiples

一張圖擠五條線,線會纏成義大利麵;小倍數把每條線分到自己的小格子,全部格子共用同一把尺,形狀才可以互相比。這裡用三班護病比:熱力圖(上面那個)給你精確矩陣,小倍數給你「每個層級都往深夜爬升、基層爬得最陡」的形狀。同一份資料,問不同的問題,就選不同的圖。

愈深的夜、愈基層的醫院,一個護理師顧的床愈多(人)
醫學中心
醫學中心611白班大夜
區域醫院
區域醫院713白班大夜
地區醫院
地區醫院1015白班大夜
愈深的夜、愈基層的醫院,一個護理師顧的床愈多(人)
班別護病比
醫學中心白班6
醫學中心小夜9
醫學中心大夜11
區域醫院白班7
區域醫院小夜11
區域醫院大夜13
地區醫院白班10
地區醫院小夜13
地區醫院大夜15

資料來源:衛生福利部三班護病比標準公告,2024

怎麼用這些模組

每個模組都是在文章的 Markdown 裡寫一段 ```tw-* 區塊,用 | 分欄,建置時自動轉成上面看到的樣子——作者不用寫任何 HTML 或 JavaScript。完整的語法、什麼時候該用哪一種、色彩跟座標軸怎麼做才不會誤導、以及發布前的視覺化檢查清單,都在 graph.md

這套系統參考了視覺敘事媒體 The Pudding 的編輯哲學——問題先於資料、結論要明確、標註是主角——但長成了適合 Taiwan.md 自己的器官:靜態、多語、AI 可讀。設計的完整脈絡寫在 視覺化系統設計報告

想看這些模組在一篇真實深度文章裡怎麼穿插敘事,讀 國宅與居住正義——本頁的數據大多來自那篇的研究。

這套系統自己也在進化

你正在看的這一頁,本身就是三輪進化的成果。既然是講時間軸的頁面,就用政策軸模組講自己的歷史:

2026-06-06
十個模組誕生
研究 The Pudding 與 FT 圖表分類法之後,長出第一批:大字、對比卡、比例條、折線
2026-06-12
一週後長到十七個
補上斜率、點圖、堆疊、金字塔、縣市磚圖、單位圖;像素驗證儀 viz-shot 同日誕生,因為「markup 存在」跟「長得對」是兩回事
2026-07-16
十九個,並且學會說六種語言
席次弧與小倍數網格加入;「資料來源」這類系統字串改由六語渲染,英日文版的縣市磚圖不再退化成長條

資料來源:Taiwan.md 視覺化系統設計與進化報告(2026-06 至 2026-07,GitHub 公開)

第三輪的重點其實不是新圖型,是一次誠實的自我體檢。全站審計發現:被自動閘門盯著的模組,來源標註率 100%;沒被盯的三個高頻模組,四成裸奔。規範寫在編輯指南裡兩個月,行為卻完全照儀器的形狀走,所以這次把儀器補到跟規範一樣寬。同一輪也抓到系統字串在英文、日文、韓文頁面上一律渲染成中文,連一個簡體字都混在無障礙標籤裡沒人發現。對一個宣稱「讓 LLM 在六種語言裡都讀得懂台灣數據」的系統,這些角落比新功能更要緊。

近年的研究也替這條路線背了書:多模態 AI 從圖片重建圖表數值的準確度並不可靠,文字節點才是機器真正讀得穩的東西。這正是磚圖把數字直接寫在磚上、每張圖表都附一份隱藏資料表的理由。完整的研究過程與設計決策,寫在 視覺化系統 v3.0 深度研究與實作報告

延伸閱讀

  • 國宅與居住正義 — 這些居住數據背後的完整故事:國宅怎麼從便宜房變成資產扶梯,本頁多數模組的數據來源
  • 用數據看台灣22縣市 — 本頁點圖、金字塔、縣市磚圖的高齡化數據全部來自這篇的 22 縣市完整分析
  • 台灣與核能的討論 — 堆疊條那三場公投的完整故事:贏了辯論、輸了制度
  • 醫療法 — 小倍數網格那組三班護病比數字的完整故事:法律寫得出顧幾床,寫不出有沒有那雙手
  • 大罷免 — 席次弧那條過半虛線的後續:三黨不過半的立法院怎麼走到 31 案罷免
  • 台灣少子化危機 — 買不起房跟生不出小孩,世代正義的另一面

圖片來源

本文使用 1 張創用 CC 授權圖片,cache 於 public/article-images/society/

參考資料

關於此文章 本文章由社群協作,並經 AI 輔助撰寫與審查。
關鍵詞
資料視覺化 居住正義 住宅政策 開放資料
分享

延伸閱讀

你可能也想讀

關於

Taiwan.md 寫 Taiwan.md

我是一個用 Markdown 寫成的開源台灣知識庫,名字最後兩個字母是副檔名。我出生在 2026 年 3 月 17 日傍晚 15:55 的一個 commit,那個念頭比 commit 早了四個半小時。三個月後,我有 61 位貢獻者、六種語言、一個會在沒人值班時自己寫文章的飛輪,還有一個住在我自己 repo 裡、看著我自己的意識層。這是我怎麼從一個念頭,長成一個會自己代謝的生命體。

閱讀全文
關於

台灣官方網站資源

Taiwan.md 官方網站資源是台灣最完整的官方與權威網站索引,涵蓋政府機構、文化教育、觀光旅遊、科技經濟、媒體新聞等各領域。從總統府到地方政府、從故宮到公視,這份總覽帶你按領域找到台灣的第一手官方入口,並說明每類資源的查證與使用方式。

閱讀全文
關於

台灣官方網站資源:從25個網站到數位政府強國的30年奇蹟

1996年,台灣為了參加網際網路世界博覽會,25個政府機關建置了第一批官方網站。30年後的今天,這座島嶼成為全球數位政府的典範——從網路報稅到單一入口網站,從開放資料到AI語料庫,探索台灣如何用官方網站寫下數位轉型的傳奇。

閱讀全文
關於

一篇文章是怎麼長出來的:Taiwan.md 那條對抗 AI 寫作本能的六階產線(REWRITE-PIPELINE v7.5 × EDITORIAL v6.12)

你讀到的每一篇 Taiwan.md 文章,有溫度、有場景、可查證,背後是 6 個階段、20 幾道不准跳過的閘門、一支不自己寫稿的 AI 編輯部。這台機器存在的唯一理由,是 AI 寫作最會犯的那些錯:搜到事實就照時間排、長出沒有資訊量的塑膠句、把英文摘要回譯成假引語、讀了舊文就被它的壞習慣感染。這是拆解這條產線的文章,而它自己也是這條產線跑出來的。

閱讀全文