微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在ggplot2中使用`facet_wrap`时在一些图周围画一个框

如何解决在ggplot2中使用`facet_wrap`时在一些图周围画一个框

我使用 ggplot() 创建了以下带有面板的图:

ggplot(merged.table,aes(x=iter,y=freq,group=var)) + geom_line()+facet_wrap(.~var)

enter image description here

我想围绕一些在向量 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?