使用不同颜色在绘图上绘制图例

时间:2012-10-02 09:57:54

标签: r legend

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

enter image description here

我有一个数据框:

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标签下面的图例应该有'蓝色'。

看起来应该是这样的:

enter image description here

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

1 个答案:

答案 0 :(得分: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”来创建一个盒子图像。