也许正在寻找类似的东西?
一些数据
df1 <- data.frame(x= rep(1:10,10), y = 1:100)
合并并添加引用 col df
newdf <- rbind(data.frame(df1[1:60,],df="df1"),data.frame(df1[1:20,],df="df2"))
用dplyr添加一个新的分组最大y值列
require(dplyr)
newdf <- newdf %>% group_by(df) %>% mutate(ymax = max(y))
现在我们用geom_rect() 绘制线数据和缩放边界
ggplot(newdf) +
geom_rect(fill=NA,colour="grey",aes(xmin=0,xmax=max(x),ymin=0,ymax=ymax)) +
facet_grid(. ~ df, margins = FALSE) + geom_line(aes(x,y))
最后,用一个主题来摆脱一些元素……
一个名为thmEls的非常有限的主题对象示例。
require(grid)
require(ggplot2)
thmEls <-
theme(
# PARENT ----------------------------------------------
# line = element_blank(),
rect = element_rect(fill="white",colour="gray40", size=0.35, linetype=1),
# text = element_blank(),
# title = NULL,
# axis.title = NULL,
# AXIS -------------------------------------------------
# axis.title.x = element_blank(),
axis.title.y = element_blank(),
# axis.text = element_blank(),
# axis.text.x = element_blank(),
axis.text.y = element_blank(),
# axis.ticks = element_blank(),
# axis.ticks.x = element_blank(),
axis.ticks.y = element_blank(),
# axis.ticks.length = element_blank(),
# axis.ticks.margin = element_blank(),
# axis.line = element_blank(),
# axis.line.x = element_blank(),
# axis.line.y = element_blank(),
# LEGEND ----------------------------------------------
# legend.background = element_blank(),
# legend.key = element_blank(),
# legend.key.size = element_blank(),
# legend.key.width = element_blank(),
# legend.text = element_blank(),
# legend.text.align = element_blank(),
# legend.position = element_blank(),
# legend.direction = element_blank(),
# legend.justification = element_blank(),
# legend.box = element_blank(),
# legend.box.justification = element_blank(),
# PANEL ------------------------------------------------
# ,size=0.3 from panel.background
panel.background = element_blank(),
# panel.border = element_blank(),
panel.margin = unit(c(0.125),"lines"),
# panel.grid = element_blank(),
# panel.grid.major = element_blank(),
# panel.grid.minor = element_blank(),
# panel.grid.major.x = element_blank(),
panel.grid.major.y = element_blank(),
panel.grid.minor.x = element_blank(),
panel.grid.minor.y = element_blank(),
# PLOT ------------------------------------------------
plot.background = element_blank(),
plot.title = element_blank(),
plot.margin = unit(c(0.3,0.3,0.15,0.15),"lines"),
# STRIP -----------------------------------------------
strip.background = element_blank(),
strip.text = element_blank(),
# strip.text.x = element_blank(),
# strip.text.y = element_blank(),
complete = FALSE)
将此添加到我们的情节中:
ggplot(newdf) +
geom_rect(fill=NA,colour="grey",aes(xmin=0,xmax=max(x),ymin=0,ymax=ymax)) +
facet_grid(. ~ df, margins = FALSE) + geom_line(aes(x,y)) +
thmEls
给予: