樹狀圖的美化
你已經做出一張樹狀圖,但視覺效果沒有你預期那麼吸睛!
dendextend 套件能透過為分支上色與勾勒叢集邊界,幫助觀眾更容易閱讀。dendextend 是針對樹狀圖物件設計的,因此你需要用 as.dendrogram() 將 hclust 產生的階層式叢集結果轉成樹狀圖物件。
檢視樹狀圖中所有詞彙的好方法是使用 labels() 函式。它會列出樹狀圖的所有詞彙。若要凸顯特定分支,使用 branches_attr_by_labels()。先傳入樹狀圖物件,再傳入詞彙向量,如 c("data", "camp")。最後加上一個顏色,例如 "blue"。
畫出圖之後,你可以用 rect.dendrogram() 標示叢集。它會在每個叢集外加上矩形。rect.dendrogram() 的第一個引數是樹狀圖物件,接著是叢集數量(k)。你也可以提供 border 引數來指定矩形邊框顏色(例如 "green")。
本練習屬於課程
R 的 Bag-of-Words 文本探勘
練習說明
dendextend 套件已為你載入,且已使用 tweets_dist 建立了一個階層式叢集物件 hc。
- 使用
as.dendrogram()作用在hc,建立樹狀圖物件hcd。 - 將
hcd的labels印出到主控台。 - 使用
branches_attr_by_labels()為分支上色。傳入三個引數:物件hcd、c("marvin", "gaye"),以及顏色"red"。指定給hcd_colored。 - 使用
plot()繪製樹狀圖hcd_colored,並透過main引數加上標題"Better Dendrogram"。 - 使用
rect.dendrogram()在圖上加上矩形。指定k = 2個叢集,並將border顏色設為"grey50"。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Create hcd
___ <- ___(___)
# Print the labels in hcd
___(___)
# Change the branch color to red for "marvin" and "gaye"
___ <- ___(___, ___, ___)
# Plot hcd_colored
___(___, ___)
# Add cluster rectangles
___(___, ___, ___)