如何繪製集合交集的 UpSet Plot(元素交集圖)
2026/08/31

如何繪製集合交集的 UpSet Plot(元素交集圖)

利用 CSV 或 Excel 資料快速繪製 UpSet plot。輕鬆編碼集合隸屬關係、解讀交集長條圖與點矩陣、標示特定重疊區域,並在 SciVis 中編輯修改圖表。

當集合數量達到五個時,傳統的文氏圖(Venn diagram)往往會帶來更多視覺混亂而非清晰的資訊。區域變得過於狹小而難以標記、讀者無法準確比較各區域的面積大小,且容易遺漏未顯示的交集。UpSet plot 則以明確的交集矩陣與對齊的長條圖,完美取代了這些相互重疊的幾何圖形。

當您的研究問題涉及多個基因列表、臨床世代(cohorts)、特徵集、物種、代謝通路或實驗條件之間的重疊關係時,推薦使用 SciDraw 的 UpSet Plot Generator。此工具可接收結構化的隸屬關係表,並將生成的圖表傳送至 SciVis 進行後續的細節調整。

包含集合大小長條圖、交集矩陣與交集大小長條圖的基本 UpSet plot

繪製 UpSet plot 的常見錯誤

  • 重複計算交集: 必須釐清長條圖代表的是「排他性交集(exclusive intersections)」還是「包含性重疊(inclusive overlaps)」。
  • 識別碼格式不一致: 例如 Gene-1、gene1 與 Gene_1 可能會被系統判定為不同的獨立項目。
  • 集合中含有重複記錄: 隸屬關係通常為二元分類,重複的記錄不應膨脹交集的計數。
  • 未說明排序依據: 交集長條圖可依據交集大小、階數(degree)或特定的生物學優先順序進行排序,繪圖時應予以註明。
  • 顯示過多微小的交集: 應設定明確的篩選規則過濾微小交集,並在其他地方保留完整的原始數據。

UpSet plot 需要什麼格式的資料?

SciDraw 的範例採用寬格式的二元隸屬關係表(binary-membership table):

欄位 (Column)用途範例
item唯一實體識別碼Gene_001
Control是否屬於 Control 對照組1 或 0
Treatment_A是否屬於 Treatment A 處理組1 或 0
Treatment_B是否屬於 Treatment B 處理組1 或 0
Treatment_C是否屬於 Treatment C 處理組1 或 0
Validation是否屬於 Validation 驗證組1 或 0
highlight選用的標記註釋yes 或 no

每個集合各佔一欄;基礎範例共有 5 個集合。

您可以下載 基本 UpSet CSV 範例 或 基因集範例。表格中的每一行應代表一個唯一的項目,且每個集合欄位皆須使用一致的真/偽值(true/false)來表示。

步驟 1:在繪圖前明確定義集合

請先寫下判定項目屬於各集合的具體標準。以差異表達基因列表為例,這可能需要對所有實驗條件套用一致的校正後 p 值(adjusted p-value)與折數變化(fold-change)閾值;對於臨床世代,則需有明確記錄的納入標準。圖表本身無法修正定義不一致的原始資料。

步驟 2:上傳隸屬關係表

開啟 UpSet Plot Generator,選擇內建的六個範例之一,或直接上傳您的 CSV、TSV、TXT、XLSX 或 XLS 檔案。請仔細檢查預覽畫面,確認是否有重複的項目識別碼、遺漏的隸屬關係儲存格,或被意外解析為文字格式的數值欄位。

步驟 3:驗證矩陣與長條圖

矩陣中的每一列代表一個集合,而每一行(直欄)代表一種交集組合。實心圓點表示該集合包含於該交集中;當交集涉及兩個以上的集合時,會有一條垂直線將這些圓點連接起來。該直欄上方的長條圖則顯示了該交集的大小。左側的水平長條圖則呈現了各個集合的總大小。

多個重疊差異表達基因集的 UpSet plot 範例

建議從原始表格中手動計算幾個關鍵的交集數值,並與圖表中的長條高度進行比對驗證。在進行過資料篩選,或單一項目可能同時出現在多個來源檔案時,此驗證步驟尤為重要。

步驟 4:選擇具說服力的排序方式

依「交集大小(intersection size)」排序有助於讀者快速找出主要的重疊組合;依「階數(degree)」排序則能將單一集合、兩兩交集及更高階的交集分組呈現。若某個預設的對比組合是研究的核心,採用自訂排序是合理的,但不應僅為使特定結果看起來更顯眼而刻意調整。

您可以使用 SciVis 來調整標籤、間距與色彩。將某個具生物學意義的關鍵交集高亮標示,並讓其餘的矩陣部分保持中性色調。

高亮標示單一交集組合的 UpSet plot

如何解讀 UpSet plot

解讀時,請先看上方的交集大小長條圖,沿著該直欄向下對齊到點矩陣,即可看出該交集是由哪些集合(即實心圓點所在的橫列)所組成。在採用排他性交集(exclusive intersections)的圖表中,若某一欄僅在 Treatment A 與 Treatment B 有實心圓點,而 Control 為空心,則代表該長條僅包含同時存在於這兩個處理組、但不存在於對照組的項目。

請注意,左側的「集合大小長條圖」與上方的「交集大小長條圖」回答的是不同的問題。一個規模很大的集合,如果其大多數成員都與其他集合共享,則其特有的獨特項目(unique items)數量仍可能非常少。

該選擇 UpSet plot 還是文氏圖?

  • 當集合數量為兩個或三個,且直觀的空間重疊視覺隱喻有助於理解時,請使用 Venn Diagram Maker。
  • 當集合數量達到四個或更多,或者需要精確比較各個交集的大小時,請使用 UpSet plot。
  • 當研究問題關注的是動態的流動或轉移,而非靜態的集合隸屬關係時,請使用 Sankey Diagram Generator。

常見問題

我可以在不使用 R 語言的情況下繪製 UpSet plot 嗎?

可以。您只需將二元隸屬關係表上傳至 UpSet Plot Generator 生成圖表,即可直接匯入 SciVis 進行後續的視覺編輯。

隸屬關係欄位可以使用 TRUE 和 FALSE 嗎?

使用一致的布林值(Boolean values)是可以運作的,但我們提供的範例皆使用 1 和 0,因為這在 CSV 與各類試算表軟體之間最具相容性且不易產生歧義。

什麼是交集階數(Intersection Degree)?

階數是指參與該交集的集合數量。單個實心圓點的階數為一;三個相連的實心圓點則代表階數為三。

我應該顯示所有可能的交集組合嗎?

不一定。當集合系統龐大時,可能會產生許多空集合或極微小的交集。建議設定並說明一個透明的「最小數量限制」或「僅顯示前幾大交集」的篩選規則,而非手動刪除不符合預期的結果。

開始繪製圖表

立即使用 UpSet Plot Generator 開始建立您的圖表。繪製後請務必對照隸屬關係表驗證關鍵數據,並可參考我們的 科學數據視覺化指南 以獲取更多圖表選擇建議。

用 AI 製作你的科研配圖

數千名研究人員使用 SciDraw AI 為論文、研究計畫與期刊投稿製作專業配圖,幾分鐘完成,無需設計經驗。