美化树状图
您已经做出了一个树状图,但它没有您预期的那么吸引人!
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
___(___, ___, ___)