【问题标题】:Draw legend on a plot using different colors使用不同颜色在绘图上绘制图例
【发布时间】:2012-10-02 09:57:54
【问题描述】:
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 但没有得到想要的结果。 有没有办法做到这一点?

【问题讨论】:

  • 使用'legend'函数,有没有办法创建上面的情节??

标签: r legend


【解决方案1】:

终于找到了解决这个问题的方法: 可以使用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" 来创建一个盒子图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 2019-01-07
    相关资源
    最近更新 更多