1
x <- matrix(seq(1,10,by=0.1),ncol=5,nrow=5)
colnames(x) <- letters[1:5]
rownames(x) <- letters[6:10]
plot(hclust(t(dist(x))))

在此处输入图像描述

我有一个数据框:

df <- data.frame(Rows = letters[6:10],value=c("L","L","L","L","N"))
df
  Rows value
1    f     L
2    g     L
3    h     L
4    i     L
5    j     N

我想在 x 轴下方的上图中绘制一个彩色图例。像 rowname f 的值 L 一样,因此在图中它下面的部分图例应该被着色为“红色”,同样,h、i、g 和但图中 j 标签下面的图例应该有“蓝色”。

它应该看起来像这样:

在此处输入图像描述

我尝试使用 image.plot 但没有得到想要的结果。有没有办法做到这一点 ?

4

1 回答 1

0

终于找到了解决这个问题的方法:可以使用text函数绘制结果图

df <- data.frame(Rows = letters[6:10],value=c("L","L","L","L","N"))
x <- matrix(seq(1,10,by=0.1),ncol=5,nrow=5)
colnames(x) <- letters[1:5]
rownames(x) <- letters[6:10]
plot(hclust(t(dist(x))))
axis(1,at=seq(1,length(rownames(x)),1),labels=FALSE)
text(seq(1,length(rownames(x)),1),labels="\u2594",col=c(rep("red",2),"blue",rep("red",2)),cex=25,par("usr")[3]+0.005)
legend("topright",legend=c("L","N"),col=c("red","blue"))

unicode "\u2594" 在文本中用于创建框图像。

于 2012-12-17T05:46:54.590 回答