從 Google Sheets 的資料製作散佈圖並匯出成乾淨的獨立 SVG,大約一分鐘就能完成:把兩個數值欄複製到 Scatter Plot Maker 中,點擊 generate,然後下載產生的檔案即可。這個工具接受每一非空白行一組嚴格的 x,y 配對,支援帶正負號的數值、小數以及科學記號,並將有效、無效以及超出上限的列分別以三個獨立數量回報,因此不會有資料被靜默丟棄。每個圓點繪製於兩個獨立的線性座標軸上,頁面上的預覽與下載的檔案都由同一個經百分比編碼的 SVG 字串所產生,且沒有任何試算表數值會離開瀏覽器分頁。由於輸出為向量格式,圖表在縮放以供簡報、PDF 或列印使用時依然保持銳利,而 SVG 包含數值座標軸標籤、標題、格線,以及可在支援 SVG 的檢視器中顯示格式化 x,y 數值的逐點文字標籤。

make scatter plot in google sheets
在 Google Sheets 中製作散佈圖:貼上並匯出

為什麼要從 Sheets 匯出,而不是使用 Insert > Chart

Sheets 的確內建了位於 Insert > Chart 之下的散佈圖,對於在工作簿中進行快速探索來說完全可用。一旦你需要的是可攜檔案,摩擦便出現了:圖表編輯器中沒有直接的「另存為 SVG」按鈕,而取得真正影像檔的途徑通常得經由將圖表發布到網路、截圖,或將其複製到 Slides。在圖表編輯器中也不存在任何介面能告訴你實際上有多少儲存格餵入了圖表,因此一個多餘的文字標籤或空白儲存格,只能透過肉眼檢查渲染出來的點才會顯現。

Scatter Plot Maker 採取不同的做法。貼上你的 x,y 列,預覽下方的摘要列會清楚告訴你有多少列是有效的、多少列格式錯誤,以及有多少列落在 200 列的檢查邊界之上。輸出是一個真正的 SVG 檔案,你可以直接放入簡報中、嵌入 GitHub README,或在 Inkscape 中開啟而無需任何包裝容器。每一個位元組都在當前分頁中於本機產生,因此你貼上的資料永遠不會送達伺服器。

從 Google Sheets 取出 x,y 配對

解析器要求每一非空白行為一組嚴格的配對,因此前置步驟是將兩個數值欄位重新整理成該形式。開啟內含欲繪製資料的工作簿,挑選兩個數值欄位(通常左側為自變數、右側為應變數),並新增一個輔助欄,其公式為 =A2&","&B2(請代入實際的儲存格參照)。將輔助欄往下拖曳至最後一個資料列,複製該單一欄位,然後貼到純文字檔中或直接貼入工具的文字輸入區。

另一種更輕量的做法是選取兩個數值欄位、將其複製到純文字編輯器,然後利用尋找與取代將兩個數字之間的 tab 轉為逗號。任一方法都能產生與解析器預期相符的乾淨 x,y 列。標頭列與多餘的文字列不會造成問題:它們會被計入無效,不會以 (0,0) 點的形式出現在圖表上,也不會被混入有效計數中。刻意保留為空白的列則會被完全忽略,且不會出現在任何三項計數中。

從 x,y 列建立散佈圖

  1. 在瀏覽器分頁中開啟 Scatter Plot Maker。
  2. 在標題欄位中輸入圖表標題,例如「Hours studied vs. exam score.」。標題會經 XML 跳脫處理,因此結尾標記、& 符號、引號以及撇號都會以可見文字呈現,而不會破壞 SVG。
  3. 將你的 x,y 配對貼入資料方塊中,每一非空白行一組,格式為 x,y,且逗號兩側不帶空格。
  4. 點擊 Generate。摘要列會立即出現,並分別報告三個數字:有效點數、無效列數,以及超出上限的列數。
  5. 閱讀預覽底部與左側邊緣的小型數值標籤,確認 x 範圍與 y 範圍符合預期。兩條軸皆為獨立的線性刻度,且都不會自動包含零。
  6. 檢查預覽中的若干圓點。每一個圓點皆附帶一個 SVG text 元素,內容為其格式化後的 x,y 數值,而你所看到的預覽正是下載按鈕所產生的同一個 SVG 字串。
  7. 點擊 Download SVG。該檔案是一個獨立的 800 乘 500 SVG,具有白色背景、標題、格線、座標軸標籤以及藍色圓形標記。
  8. 將 SVG 放入簡報、Markdown 檔案,或任何向量編輯器中。由於幾何為向量,它在任何尺寸下都保持銳利。

列數計數與座標軸標籤的運作方式

解析器對每一非空白列進行嚴格檢查。每列僅接受恰好兩個以逗號分隔的有限數值;帶正負號的數值、小數、零以及科學記號皆可解析。空白列會被忽略。其他任何內容——包括多餘的逗號、單位文字、十六進位、Infinity、NaN、量級超過 1e12,或空白的組成部分——皆會計入無效並單獨回報,絕不會被靜默截斷為座標軸上的 (0,0)。僅前 200 個非空白列會進行有效性檢查;超出該邊界的任何非空白列會計為超出上限的略過,並與無效計數分開。當貼上的文字超過 50,000 個 UTF-16 程式碼單位時,解析器便停止接受輸入,這遠高於任何數百列的實際 x,y 資料集。

兩條軸使用獨立的線性刻度。最小的 x 對應左側繪圖邊緣,最大的 x 對應右側;同樣的規則垂直套用於 y。介於極端值之間的數值會依其數值距離按比例擺放,因此不相等的數值差距在圖表上也保持不相等。五條參考線與數值標籤揭示了各顯示範圍。由於零不會自動插入,請於解讀叢集看似的位置或分散程度之前,先檢視標籤。

當所有 x 值相同,或所有 y 值相同時,該軸的最小值與最大值會重合,座標計算將發生除以零的情況。工具的處理方式是:圍繞該常數值對軸進行對稱展開,採用絕對常數的百分之十或一個單位,以較大者為準。如此一來,單一有效點便會出現在圖表中央,而不是渲染失敗。

解析器行為一覽

工具如何處理你的輸入,取決於資料的大小與形狀。下表摘要說明了常見輸入情境下的定義行為。

輸入情境解析器的處理方式
1 至 200 個有效非空白列每一列皆繪製;摘要顯示 valid = N、invalid = 0、over-limit = 0
前 200 列中夾雜部分格式錯誤列有效列繪製;每一格式錯誤列分別計入無效
非空白列超過 200 列僅檢查前 200 列;之後每一非空白列皆計為超出上限,絕不混入無效
貼上文字超過 50,000 UTF-16 程式碼單位超出上限的輸入會被解析器拒絕
相同配對重複出現兩個點繪製於相同座標;後繪製的圓會疊在先繪製的圓之上

常數軸或單點軸的處理方式

對稱展開規則之所以存在,是與解析器其他部分不同的原因:它在某軸沒有分散時避免座標計算發生除以零。下表比較了各種情況下各自的繪製方式。

軸的情況軸的繪製方式
x 值跨越一般範圍線性刻度;最小的 x 位於左邊緣,最大的 x 位於右邊緣
所有 x 值皆相同對稱展開,採用絕對常數的百分之十或一個單位,以較大者為準
所有 y 值皆相同相同的對稱規則套用於 y 軸
單一有效點兩條軸皆依對稱展開規則置中
範圍未包含零不自動插入零;顯示範圍即實際資料範圍

SVG 包含什麼、不包含什麼

下載的檔案是一份獨立的 SVG 文件,而非依賴工具才能渲染的包裝容器。它包含白色背景、你所輸入的標題、格線、數值座標軸標籤,以及每個有效點對應的一個藍色圓形。每一圓形內含一個 SVG text 元素,其內容為格式化後的 x,y 配對,因此在向量編輯器或會顯示 SVG 輔助功能樹的瀏覽器中開啟檔案,即可看見每個標記背後的確切座標。

SVG 刻意保持簡單。它不計算相關、迴歸、趨勢線、信賴區間、誤差棒、密度、叢集或統計顯著性。它不依類別為點上色、不支援對數軸,也不套用出版品等級的樣式。座標四捨五入至小數三位,座標軸標籤針對極大或極小值採用實用的有效位數或科學記號,這使其偏向視覺化呈現,而非保留精度的資料格式。請保留原始列以用於分析、不確定性、再現性與精確數值。由於 SVG 是 W3C 所定義的向量格式,線條、文字與圓形在任何尺寸下皆保持銳利;若你想手動編輯該檔案,MDN SVG 教學 涵蓋了相關的基礎元素。

何時 Scatter Plot Maker 不是合適的工具

這個工具適用於小型實驗、配對觀察、校正樣本、課堂示範、粗略的相關性檢查以及快速目視檢視。當工作需要正式的統計輸出、具有類別上色的大型資料集、對數刻度,或出版品質的樣式時,它便不是合適的工具。在這些情況下,請於 Sheets、Excel、R 或 Python 中執行分析,並同時保留圖表與原始資料集。

若資料是一系列相連的量測而非配對觀察,折線圖會比散佈圖更為合適。請參考這份 折線圖操作指南,了解如何在 Sheets 中製作。兩種圖表類型回答的是不同的問題,請選擇與資料形狀相符者。

對於非常密集的資料集,相同的配對可能會重疊並互相遮蔽。請抽樣至數百列具代表性的資料,或切換至支援透明度、顏色映射或密度估計的繪圖套件。重疊的圓形是提示你檢查來源資料中重複項的視覺線索,而非渲染器的缺陷。

如需更深入的瞭解,請參閱 Dice Roller Cheat Sheet:Notation, Dice, and Quick Odds。