【问题标题】:Adding symbols to dendrogram leaves in R在R中向树状图叶添加符号
【发布时间】:2012-08-23 19:43:02
【问题描述】:

我想在树状图的叶子上添加符号,以反映树状图上的站点的变量,类似于:

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    

感谢您对如何进行此操作的任何建议

解决方案 遵循 Backlin 的有用建议,我使用以下解决方案

require(graphics)

hc <- hclust(dist(USArrests[1:5,]), "ave")

plot(hc, hang = -1, xlab="", sub="")

col.circle=c("yellow", "red")[cut(USArrests$Murder[hc$order], c(8,10,15))]

symbols(1:5, rep(-25, 5), circles=rep(1, 5), add=TRUE, inches=.2,bg=col.circle, xpd=TRUE)

col.square=c("blue", "green")[cut(USArrests$Assault[hc$order], c(100,200,300))]

symbols(1:5, rep(-35, 5), squares=rep(1, 5), add=TRUE, inches=.4,bg=col.square, xpd=TRUE)

legend(3.7,85,legend=c("Murder 8-10","Murder 10-15","Assualt 100-200","Assualt 200-300"),fill=c("yellow","red","blue","green"))

【问题讨论】:

  • 这对于绘制 hclust 对象的传统方法将非常困难。一种可能的选择是ggdendro 包。这在不久前引起了我的注意,看起来它可以做你想做的事。

标签: r plot key symbols dendrogram


【解决方案1】:

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])

也可以使用symboltext 绘制图例。这个想法是一样的,你可能会自己想出来,尽管它很繁琐。

【讨论】:

  • 谢谢!绝对是炒锅,但我想知道是否有任何方法可以自动化添加标签的过程,因为我有数百片叶子?
  • 哦,是的,绝对是,但你必须为它制定自己的表达方式。例如col=c("grey", "red")[cut(USArrests$Murder[hc$order], c(8,10,15))] 自动为圆圈着色。我没有将其添加到答案中,因为我假设您只想知道如何添加符号,而这超出了问题的范围
猜你喜欢
  • 2014-10-02
  • 2014-01-16
  • 2012-09-19
  • 2021-12-23
  • 2020-11-19
  • 1970-01-01
  • 2011-06-10
  • 2014-09-15
  • 1970-01-01
相关资源
最近更新 更多