將散佈圖轉換為熱力圖,意味著將一連串個別的 (x,y) 點轉化為密度網格,重疊區域會依落入該處的點數進行上色。這項轉換通常發生在統計套裝軟體中,由它將資料分箱、計算每格的點數,再用色彩漸層為每個儲存格上色。然而,在進行任何密度計算之前,你需要一組乾淨、經過驗證的 x,y 配對資料,以及一個能在二軸平面上實際檢視它們的方式。這個中間步驟正是 散佈圖製作工具 所提供的功能:貼上你的資料列,立即獲得一個涵蓋所有有效點的 800 乘 500 SVG 散佈圖,並將完全相同的預覽圖下載為獨立檔案。此工具會依據嚴格的數值規則檢查最多 200 筆非空白的資料列,並將無效與超出上限的資料列以獨立計數器回報,所有運算都在當前瀏覽器分頁中執行,不會將任何資料傳出你的電腦。它是一個視覺化工具,而非統計引擎,這使得它非常適合作為介於原始資料與任何密度圖之間的檢查步驟。

convert scatter plot to heatmap
convert scatter plot to heatmap

「將散佈圖轉換為熱力圖」究竟代表什麼

散佈圖將每一列視為平面上一個標記;而熱力圖則將許多重疊的標記摺疊成代表計數、密度或其他彙總值的彩色儲存格。因此,兩者之間的轉換需要三個散佈圖製作工具並未執行的作業:將平面分箱為網格、計算每格的點數,以及將計數對應至色彩漸層。此工具所執行的是這三項作業的前置作業:確認你的每一列都能解析為有限的數值配對、在獨立的線性座標軸上繪製每個有效點,並提供一個可供分享的向量檔案,讓你在別處建立密度圖時能有所參考。

將轉換視為一個流程會比較有幫助。第一階段是清理與驗證 x,y 資料列。第二階段是在真實的座標軸上預覽它們,使離群值、重複項與常數欄位能立即顯現。第三階段則是將清理過的清單餵入會產生熱力圖的統計套裝軟體。本文涵蓋第一與第二階段,因為這兩個階段都在散佈圖工具中執行,且都必須正確,下游的密度轉換才有意義。

如何使用散佈圖製作工具繪製你的 x,y 資料

  1. 在標題欄位中輸入標題。此工具在將標題顯示於 SVG 與無障礙標籤之前會先進行 XML 跳脫處理,因此 &、角括號、引號與撇號都會以可見文字顯示,而非標記。
  2. 在每個非空白行中以 x,y 的格式貼上一組配對。可接受帶正負號的值、小數、零與科學記號;空白行會被忽略。
  3. 點擊 generate(產生)。解析器會拒絕總計超過 50,000 個 UTF-16 字碼單位的輸入,且最多只會檢查前 200 筆非空白資料列,確認其是否為以逗號分隔且絕對值在 1e12 以內的兩個有限數字。
  4. 閱讀摘要面板:它一律會將有效點、無效資料列與超出上限的資料列以三個獨立的數字列出,包含零。超過 200 列上限的資料列並不會被混入無效計數中,因為它們是刻意未被解析的。
  5. 檢查預覽圖。最小 x 值會落在左側繪圖邊緣,最大 x 值落在右側;最小 y 值落在底部,最大 y 值落在頂部。五條參考線與標註的刻度會顯示每個呈現的範圍。
  6. 開啟 SVG,閱讀每個圓形 title 元素中已格式化的 x 與 y 文字。這是該工具使用的精確數值,而非重建後的近似值。
  7. 點擊 download(下載)以儲存完全相同的 800 乘 500 獨立 SVG。編輯標題或資料會清除已快取的 SVG 並停用舊的下載,因此重新 generate 會產生新的檔案。

此工具嚴格執行的輸入規則

解析器刻意設計得不寬容,因為靜默的修正會掩蓋真正的問題。包含空元件、額外逗號、單位文字、十六進位、Infinity 或 NaN 的資料列會被標記為無效,且絕不會成為零點或移動到座標軸上。絕對值超過 1e12 的數值會因相同原因而被拒絕。負零會被正規化為正零,以免兩個接近零的值出現在座標軸的兩側。這些規則意味著,如果你的熱力圖來源資料有問題,摘要面板會精確地告訴你,在將資料餵入密度工具之前,有多少列需要清理。

格式是否接受範例
帶正負號的整數-7,42
小數3.14,-2.71
科學記號1.5e3,2E-4
負零正規化為 0-0,0.5
十六進位0x1A,5
單位文字10 kg,2 m
Infinity 或 NaNInfinity,3
空元件,5 或 3,

SVG 圖如何將數值對應至位置

兩個座標軸皆使用獨立的線性刻度,因此兩個 x 值之間 10 個單位的間距,無論落在軸上的何處,總是佔據相同的水平比例。最小 x 值對應至左邊界,最大 x 值對應至右邊界;最小 y 值對應至底部,最大 y 值對應至頂部。介於這些範圍之間的值會依其數值距離按比例直接放置。座標軸並不會自動包含零,因此看似緊密的群聚,實際上可能橫跨在一個狹窄的數值範圍上。在解讀表面上的分散程度之前,請務必閱讀五條標註的參考線。

常數欄位需要特別處理,因為其最小值與最大值會相等,除以零會使座標變成無效。當每個 x 值都相同時,此工具會以該常數絕對值的百分之十或一個單位(取較大者)為基準,在其周圍對稱地擴展 x 定義域。相同的規則會獨立套用於 y。此擴展正是讓單一有效點能出現在兩個座標軸中央,而不是產生失敗的原因。經此擴展後,座標會在 SVG 中四捨五入至小數三位,而座標軸標籤會使用實用的有效位數,或對極大與極小的值使用科學記號。

準備密度資料時常見的陷阱

重疊的點是散佈圖看起來比來源資料還稀疏的最常見原因。相同的配對會堆疊在同一座標上,第二個圓形會遮住第一個,這可能讓密集的群聚看起來像一個點。這也是熱力圖存在的原因:它能呈現原始散佈標記無法顯示的密度。在進行任何轉換之前,請掃描預覽圖中的重複座標,並決定要對其加入抖動、予以去重,還是接受堆疊。

第二個陷阱是在未閱讀標籤的情況下輕信座標軸位置。由於此工具預設不包含零,靠近圖表底部的點可能具有較大的正 y 值,而非接近零的值。第三個陷阱是將 SVG 視為能保留精度的檔案。座標會四捨五入至小數三位,且此圖表對相關性、迴歸、群聚或顯著性並未做出任何統計上的聲明。請保留原始資料列以進行分析、不確定性評估、再現性驗證與精確數值查驗;SVG 僅是用於檢查與分享的快照。

在進行密度轉換前驗證你的圖表

在將清理過的 x,y 清單傳遞給熱力圖函式之前,應通過三項檢查。首先,兩個座標軸的範圍應與資料中的最小值與最大值相符,這可由標註的參考線直接顯示。其次,摘要面板中的三個計數器加總應等於你所貼上的非空白資料列數:有效加上無效加上超出上限等於你的輸入。若無效或超出上限不為零,請決定要清理來源資料,還是接受部分樣本。第三,SVG 中數個點的 title 會顯示解析器所接受的精確格式化 x 與 y 值,這些值應與原始資料列逐字元相符。若任何檢查失敗,請編輯輸入並重新產生;一旦你變更標題或資料,快取的 SVG 即會失效。

何時散佈圖才是正確的最終解答

並非每個 x,y 資料集都適合轉換為熱力圖。小型實驗、配對觀察值、校正樣本、課堂示範、粗略的相關性檢查與快速的視覺檢查,通常以原始點呈現會比彙總的密度儲存格更為清楚。散佈圖製作工具正是為這些情境所打造:最多 200 組嚴格的配對、三個誠實的計數器、一個向量 SVG 下載,且完全不需要往返伺服器。對於需要色彩、對數座標軸、無障礙標籤或正式統計分析的密集資料集,正確的下一步是使用專用的繪圖套裝軟體,並以本工具協助你確認的清理過資料列作為輸入。無論哪種方式,你在這裡下載的 SVG 都與頁面上預覽所使用的百分號編碼資料 URI 相同,因此所見即所存。

如需更深入的探討,請參閱 如何用一段話製作故事圖表

如需更深入的探討,請參閱 如何用 3 個步驟讓故事圖表變得有趣