R ggplot2:绘图外注释的页边距

R ggplot2:绘图外注释的页边距,r,ggplot2,R,Ggplot2,我的问题和这个问题几乎完全一样:。被接受的答案在大多数情况下对我有效,但根据情节的大小,注释有时会从情节中脱落 我试过在y刻度上乱搞情节和图例的边距,但并没有达到我的预期效果。到目前为止,我得到的是: 库(magrittr) 图书馆(GG2) 测试@Oliver将绘图.边距单位更改为行,中,厘米对我有效,问题在于本机单位的缩放。这个解决方案对你有用吗 fig2 <- (ggplot(test, mapping = aes(x = interaction(Ye

我的问题和这个问题几乎完全一样:。被接受的答案在大多数情况下对我有效,但根据情节的大小,注释有时会从情节中脱落

我试过在y刻度上乱搞情节和图例的边距,但并没有达到我的预期效果。到目前为止,我得到的是:

库(magrittr)
图书馆(GG2)

测试@Oliver将
绘图.边距
单位更改为
厘米
对我有效,问题在于
本机
单位的缩放。这个解决方案对你有用吗

fig2 <- (ggplot(test,
                mapping = aes(x = interaction(Year, Quarter, lex.order = TRUE),
                              y = rate, group = area, color = area)) +
           geom_line() +
           coord_cartesian(ylim = c(0, yMax), expand = TRUE) +
           scale_x_discrete(labels = paste0("Q", rep(1:4, 3))) +
           scale_y_continuous(name = "Rate", expand = c(0,0)) +
           annotate(geom = "text", label = unique(test$Year),
                    x = 2.5 + 4 * (0:2),
                    y = -yMin,
                    size = 5, vjust = 0) +
           annotate(geom = "segment",
                    x = c(4.5, 8.5), xend = c(4.5, 8.5),
                    y = 0, yend = -yMin * 1.1) +
           theme(plot.margin = margin(c(1, 1, 3, 1), unit="lines"),
                 axis.title.x = element_blank(),
                 panel.background = element_blank(),
                 axis.line = element_line(),
                 legend.position = "bottom",
                 legend.margin = margin(c(3, 1, 1, 1), unit="lines"),
                 legend.background = element_rect(fill = alpha(0.5)))
                 ) %>%
  ggplotGrob() %>% 
  (function(x) {
    x$layout$clip[x$layout$name == "panel"] <- "off"
    return(x)
  }); grid.draw(fig2)
fig2%
ggplotGrob()%>%
(功能(x){

x$layout$clip[x$layout$name==“panel”]你愿意将图例移到顶部吗?@Djork我不愿意,但无论如何,如果图例很高,我不认为这会对从底部掉落的年份注释产生什么影响?我希望有一个解决方案,我不必考虑发生什么。只是因为如果我将图例移到顶部,输出似乎最一致。是
本机的
单位造成了我的问题。@Djork哦,你说得对,移动图例确实缓解了不少问题。虽然看起来还是不太正确,但底部边距在像素或y轴单位上仍然不一致……嗯,仍然与图例重叠,和/或在绘图下面有一个非常大的边距。我之所以选择
native
单位,首先是因为我认为它们会对绘图高度做出响应。辅助x轴标签的位置总是会对高度做出响应,因为它们位于Y轴上,所以我认为绘图边距和图例的位置也必须做出响应?A你是在打印文件吗?你有一个理想的图形高宽比吗?我计划在Rmd中使用这个绘图,我将把它编成html。我还没有弄清楚尺寸到底是什么,我希望在我需要一个更大或更小的图形时,我不必手动改变间距,你知道吗?