我正在尝试根据标签名称的一部分为树状图的标签着色。标签名称源自文件夹中的文件名。这些文件是 .txt 文件,并以这种方式命名:167_001.txt 前三个数字表示文本的特定作者,最后三个数字区分该作者的单独文章。我想用文件的全名标记分支,但只根据前 3 个数字为标签着色,这样我就可以看到特定作者的哪些作品可能与其他作者有更多共同点,从而了解谁影响了谁。这些都是中世纪作家,所以你不会帮我找到任何可能抄袭某些东西的现代作家。因此,如果一个文件以 080 开头,我希望所有 080 文件都是一种颜色,无论文件名的最后部分是什么,也不管它在哪里分组,但我仍然希望文件的结尾部分在标签名称。这是我到目前为止所拥有的:
# Load data
data(USArrests)
dd <- dist(scale(USArrests), method = "euclidean")
#Perform a cluster analysis on the distance object
hc <- hclust(dd)
#Get the text file names to use as labels
dend <- as.dendrogram(hc)
dend2 = color_unique_labels(dend)
d5gr=color_branches(dend2,5,groupLabels=TRUE)
#plot(d5gr)
plot(d5gr, horiz=TRUE)
如您所见,我正在使用 dendextend 包。如果有人有更好的软件包或可以同时完成我需要的软件包,那就太好了。我目前所拥有的会将文件放在相同的颜色系列中,因为它们足够相似,dendextend 提供的“color_unique_labels”功能至少可以将它们的颜色设置为相同颜色的阴影,但它不会使它们的颜色完全相同我希望同一个作者总是相同的颜色,然后更容易看出哪些作品与不同作者有相似之处。见下文。有几百个不同的作者,所以我不想手动为每个人分配一个单独的颜色(A =“红色”,B =“蓝色”,C =“兰花”等),但更喜欢像“color_unique_labels”一样工作 并根据文件名中的前 3 个数字自动选择和分配颜色。我的例子是使用 USArrests 包,我可能想看看如何用第一个字母为州名着色,所以所有“A”州和“C”州等都是相同的颜色。所以阿拉巴马州、阿拉斯加州、亚利桑那州和阿肯色州都应该是同一种颜色,而加利福尼亚州、科罗拉多州和康涅狄格州也应该是同一种颜色。同样,我更愿意找到一种方法使其更加自动化,因为我的真实数据集有几百种可能性,而不仅仅是 50 种,但是,如果这是唯一的选择,我不反对。提前致谢!所以所有的“A”状态和“C”状态等等都是相同的颜色。所以阿拉巴马州、阿拉斯加州、亚利桑那州和阿肯色州都应该是同一种颜色,而加利福尼亚州、科罗拉多州和康涅狄格州也应该是同一种颜色。同样,我更愿意找到一种方法使其更加自动化,因为我的真实数据集有几百种可能性,而不仅仅是 50 种,但是,如果这是唯一的选择,我不反对。提前致谢!所以所有的“A”状态和“C”状态等等都是相同的颜色。所以阿拉巴马州、阿拉斯加州、亚利桑那州和阿肯色州都应该是同一种颜色,而加利福尼亚州、科罗拉多州和康涅狄格州也应该是同一种颜色。同样,我更愿意找到一种方法使其更加自动化,因为我的真实数据集有几百种可能性,而不仅仅是 50 种,但是,如果这是唯一的选择,我不反对。提前致谢!