如何解决在ggplot2中使用`facet_wrap`时在一些图周围画一个框
我使用 ggplot()
创建了以下带有面板的图:
ggplot(merged.table,aes(x=iter,y=freq,group=var)) + geom_line()+facet_wrap(.~var)
我想围绕一些在向量 trueplots
中标识其编号的图画一个框:
trueplots<-sample(1:25,5)
我按照程序 here 进行了尝试
ggplot(merged.table,mapping=aes(x=iter,group=var)) + geom_line()+geom_rect(subset(merged.table,var %in% trueplots),fill = NA,colour = "red",)+facet_wrap(.~var)
和
ggplot(merged.table,xmin= -Inf,xmax = Inf,ymin = -Inf,ymax = Inf)+facet_wrap(.~var)
但我收到错误
Error: `mapping` must be created by `aes()`
有什么提示吗?谢谢!
解决方法
我认为您只是忘记将映射放在 aes()
中,它似乎在 geom_rect()
参数列表中的位置错误(映射是第一个参数,而不是数据)。
标准数据集示例:
library(ggplot2)
df <- mtcars
df$facet <- interaction(df$cyl,df$carb,drop = TRUE)
trueplots <- sample(levels(df$facet),5)
ggplot(df,aes(disp,hp)) +
geom_point() +
geom_rect(aes(xmin = -Inf,xmax = Inf,ymin = -Inf,ymax = Inf),data = ~ subset(.,facet %in% trueplots),colour = "black",fill = NA,inherit.aes = FALSE) +
facet_wrap(~ facet)
由 reprex package (v0.3.0) 于 2021 年 1 月 27 日创建
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。