[英]Problem with margins using plot function with as.dendrogram object
我正在尝试使用基本 R 函数和 package“dendextend”来自定义集群 plot。 首先,我使用公共 hclust() function 生成一个集群。然后我使用“dendextend”为 k=groups 定义的分支着色。 然后我使用 plot()、points() 和 text() 进行最终自定义。 要使用“deextend”的 function set() 为分支着色,集群的 class 应从“hclust”更改为“as.dendrogram”。 当我将 plot() 与 as.dendrogram 一起使用时,图中的 plot 区域似乎缩小了,主要在 x 轴下方。 我试图改变很多 par() arguments 但它不起作用。 尽管 package "dendextend" 提供了很多自定义,但它不允许旋转集群对象的标签。 下面是一些代码和图形。 我的母语不是英语,所以请忽略语法错误。
我在“Doubs.RData”中使用数据集“env”,可以在下面的链接中下载: enter link description here
env_scaled <- apply(env, 2, scale)
dist_env <- dist(env_scaled)
cluster_env <- hclust(dist_env, method = "ward.D2")
cluster <- as.dendrogram(cluster_env) %>%
set("branches_k_color", color1, k=3) %>%
set("labels", "") %>%
set("hang", -0.1) %>%
set("branches_lwd", 1.5
color_cluster <- c(rep("blue4", 4), rep("forestgreen", 17), rep("firebrick", 9))
plot(cluster, ylab="Euclidean distance", xlab="", sub="", main= "Cluster (Ward)")
points(seq(1:30), rep(0, 30), col=alpha(color_cluster, 0.8),
pch=c(rep(19, 4), rep(15,17), rep(17, 9)), cex=1.5)
text(seq(1:30), rep(-0.5,30), labels=cluster_env$order, cex=0.8,
col=color_cluster, font=2)
data(USArrest)
可用于重现上述示例。
dend <- USArrests %>%
dist() %>%
hclust(method = "ave") %>%
as.dendrogram() %>%
set("labels", "")
d2 <- color_branches(dend, 5)
plot(d2)
text(seq(1:nrow(USArrests)), rep(-5, nrow(USArrests)), labels= 1:nrow(USArrests), cex=0.8, font=2)
请注意,当我们使用text()
function 将标签设置为 -5.0(y 轴)时,它不会完全显示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.