将符号添加到R中的树叶树状图中
我想在树状图的叶子上添加符号,以反映树状图上类似以下位置的变量:将符号添加到R中的树叶树状图中,r,plot,key,symbols,dendrogram,R,Plot,Key,Symbols,Dendrogram,我想在树状图的叶子上添加符号,以反映树状图上类似以下位置的变量: require(graphics) hc <- hclust(dist(USArrests[1:5,]), "ave") plot(hc) plot(hc, hang = -1) USArrests[1:5,] Murder Assault UrbanPop Rape Alabama 13.2 236 58 21.2 Alaska 10.0 263
require(graphics)
hc <- hclust(dist(USArrests[1:5,]), "ave")
plot(hc)
plot(hc, hang = -1)
USArrests[1:5,]
Murder Assault UrbanPop Rape
Alabama 13.2 236 58 21.2
Alaska 10.0 263 48 44.5
Arizona 8.1 294 80 31.0
Arkansas 8.8 190 50 19.5
California 9.0 276 91 40.6
require(图形)
hc可以使用symbols
函数以某种迂回但仍然有效的方式完成此任务。它不支持三角形,但有一些其他形状可供选择。在下面的演示中,请注意参数xpd=TRUE
,该参数允许您在绘图区域之外(即在页边空白处)进行绘制
plot(hc, hang = -1, xlab="", sub="")
symbols(1:5, rep(-25, 5), circles=rep(1, 5), add=TRUE, inches=.2,
bg=rep(c("grey", "red"), c(3,2)), xpd=TRUE)
symbols(1:5, rep(-35, 5), squares=rep(1, 5), add=TRUE, inches=.4,
bg=rep(c("grey", "red"), c(1,4)), xpd=TRUE)
为了使示例可读,符号的y坐标设置为绝对值。如果要使它们相对于绘图的坐标,请使用如下内容,其中par(“usr”)
是一个带有绘图区域(x-left、x-right、y-bottom、y-top)的向量
y = par("usr")[3] - .04 * diff(par("usr")[3:4])
图例也可以用符号
和文本
绘制。这个想法是一样的,你可能可以自己解决它,即使它相当精细。符号功能可以用某种迂回的方式来完成,但仍然有效。它不支持三角形,但有一些其他形状可供选择。在下面的演示中,请注意参数xpd=TRUE
,该参数允许您在绘图区域之外(即在页边空白处)进行绘制
plot(hc, hang = -1, xlab="", sub="")
symbols(1:5, rep(-25, 5), circles=rep(1, 5), add=TRUE, inches=.2,
bg=rep(c("grey", "red"), c(3,2)), xpd=TRUE)
symbols(1:5, rep(-35, 5), squares=rep(1, 5), add=TRUE, inches=.4,
bg=rep(c("grey", "red"), c(1,4)), xpd=TRUE)
为了使示例可读,符号的y坐标设置为绝对值。如果要使它们相对于绘图的坐标,请使用如下内容,其中par(“usr”)
是一个带有绘图区域(x-left、x-right、y-bottom、y-top)的向量
y = par("usr")[3] - .04 * diff(par("usr")[3:4])
图例也可以用符号
和文本
绘制。这个想法是一样的,你可能可以自己解决它,即使它相当复杂。这对于传统的绘制hclust对象的方法来说是非常困难的。一个可能的选择是ggdendro
包。不久前我注意到了这一点,看起来它可能可以做你想做的事情。这对于传统的绘制hclust对象的方法来说是非常困难的。一个可能的选择是ggdendro
包。不久前我注意到了这一点,看起来它可能可以做你想做的事情。谢谢!当然可以,但我想知道是否有任何方法可以自动添加标签,因为我有数百片叶子?哦,是的,非常肯定,但你必须为它制定自己的表达式。例如,col=c(“灰色”、“红色”)[cut(USArrests$谋杀[hc$order],c(8,10,15))
自动为圆圈着色。我没有在答案中加上这个,因为我假设你只想知道如何添加符号,这超出了问题的范围谢谢!当然可以,但我想知道是否有任何方法可以自动添加标签,因为我有数百片叶子?哦,是的,非常肯定,但你必须为它制定自己的表达式。例如,col=c(“灰色”、“红色”)[cut(USArrests$谋杀[hc$order],c(8,10,15))
自动为圆圈着色。我没有在答案中添加这一点,因为我假设您只想知道如何添加符号,这超出了问题的范围