【发布时间】:2022-01-12 14:53:41
【问题描述】:
我正在尝试制作一个没有任何边距的图,但我认为使用“expand_limits”会导致在我的图中添加边距。
在下面的示例中,我将两个图重叠以尝试说明我的观点。我创建了两个重叠的条形图,其中一个我使用 expand_limits 将绘图区域设置为包含 y=1.5 作为最大值。但是,当我绘制一个具有相同最大值的矩形时,很明显在 y 最大值上方没有空白。
如何阻止 y=1.5 上方(即下方矩形上方)的空白出现?
library(ggplot2)
library(tidyverse)
library(dplyr)
library(patchwork)
set.seed(16)
dataf1 <- tibble(
percent=runif(4,0,1),
group=c("Group A", "Group B", "Group C", "Group D")
)
dataf2 <- tibble(
percent=runif(4,0,1),
group=c("Group E", "Group F", "Group G", "Group H")
)
theme_update(axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks =element_blank(),
plot.margin=unit(c(0,0,0,0), "cm"),
panel.spacing=unit(c(0,0,0,0), "cm"))
fig1 <- ggplot(data=dataf1, aes(y=percent,x=group)) +
geom_bar(stat="identity")
fig2 <- ggplot(data=dataf2, aes(y=percent,x=group)) +
geom_bar(stat="identity") + theme(panel.background = element_blank()) +
expand_limits(y=1.5)+
geom_rect(xmin=1,xmax=4,ymin=0,ymax=1.5,fill=NA,color="black")
layout <- c(
area(t=1,l=1,b=8,r=8),
area(t=3,l=2,b=10,r=9))
fig1+fig2+plot_layout(design=layout)
【问题讨论】:
-
可以设置
scale_y_continuous(expand = c(0,0))去掉fig2位上方的白条。 -
这似乎并没有改变我的结果。你测试了吗?也许我在胡扯你的建议,但我看不出有什么变化。