在 ggplot2 中使用“facet_wrap”时在一些图周围画一个框
Draw a box around some of the plots when using `facet_wrap` in ggplot2
我使用 ggplot()
创建了以下带有面板的图:
ggplot(merged.table, aes(x=iter, y=freq,group=var)) + geom_line()+facet_wrap(.~var)
我想在一些地块周围画一个方框,这些地块的编号在向量中被识别 trueplots
:
trueplots<-sample(1:25,5)
我按照程序 尝试了
ggplot(merged.table, mapping=aes(x=iter, y=freq,group=var)) + geom_line()+geom_rect(subset(merged.table, var %in% trueplots),fill = NA, colour = "red", )+facet_wrap(.~var)
和
ggplot(merged.table, mapping=aes(x=iter, y=freq,group=var)) + geom_line()+geom_rect(subset(merged.table, var %in% trueplots),fill = NA, colour = "red", 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-01-27 创建
我使用 ggplot()
创建了以下带有面板的图:
ggplot(merged.table, aes(x=iter, y=freq,group=var)) + geom_line()+facet_wrap(.~var)
我想在一些地块周围画一个方框,这些地块的编号在向量中被识别 trueplots
:
trueplots<-sample(1:25,5)
我按照程序
ggplot(merged.table, mapping=aes(x=iter, y=freq,group=var)) + geom_line()+geom_rect(subset(merged.table, var %in% trueplots),fill = NA, colour = "red", )+facet_wrap(.~var)
和
ggplot(merged.table, mapping=aes(x=iter, y=freq,group=var)) + geom_line()+geom_rect(subset(merged.table, var %in% trueplots),fill = NA, colour = "red", 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-01-27 创建