我有一个数据框,想要按ID分为4个面板,并且对于每个面板,用矩形突出显示数据。
我的数据如下:
dt<-data.frame(ID=c(rep(c("1","2","3","4"),2)),var=c(480,1180,170,130,500,1180,1450,750),
Method=c(rep(c("A","B"),each=4)))
我能找到的所有相关帖子都提到要创建一个新的数据框,每个矩形的信息作为单独的一行。因此,我创建了以下数据框:
rect<-data.frame(xmin = c(0.8, 0.8,0.8,0.8), xmax = c(2.2, 2.2, 2.2, 2.2),
ymin = c(430, 1130, 120, 80), ymax = c(550, 1230, 1500, 800),
alpha = c(.1, .1, .1, .1),
fill = c("red", "green","orange","blue"))
我的ggplot代码如下:
ggplot(dt,aes(x=Method,y=var)) +
geom_point() +
annotate("rect", xmin = rect$xmin, xmax = rect$xmax, ymin = rect$ymin, ymax = rect$ymax,
alpha = 0.1, fill = "green")+
facet_wrap(~ID,ncol=4)+
theme_bw()
以下是翻译结果:
对于我来说,geom_rect选项根本不起作用。我只会收到有关缺少变量的错误消息。我已将ID和Method列添加到rect数据框中,但这只会引发var变量不存在的问题。我考虑过全部合并,但我不确定那是否能解决问题。这是我尝试使用geom_rect的内容。
geom_rect(data=rect, aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax),
alpha = 0.1,fill = "blue")+
我想要的只是每个面板中的一个矩形,如rect数据框所示。不是所有的矩形都在每个数据框中。暂时忽略颜色,如果它们全部是绿色或蓝色也可以。谢谢您的帮助。