减少 ggplot 中的面板高度/宽度并在 R Markdown 中裁剪空白

Posted

技术标签:

【中文标题】减少 ggplot 中的面板高度/宽度并在 R Markdown 中裁剪空白【英文标题】:Reducing panel height/width in a ggplot & cropping the white space in R Markdown 【发布时间】:2021-10-09 02:40:22 【问题描述】:

请不要关闭它并告诉我答案在 Remove space between plotted data and the axes 上,因为这不是同一个情节并且在这里不起作用。使用 expand 会使条变大。

我原来的问题是面板太多,下面详述,我使用解决了

library(patchwork)
plot11f + plot_layout(ncol = 1,nrow =5)

我能够用更少的灰色获得漂亮的瘦情节,但是在我的降价文档中它下面有一个很大的空白。使用 plot.margins 没有帮助,它切断了我的轴标签,仍然给出了大的空白。

--- 原始问题 --- 我已经制作了以下 ggplot (下面的代码和虚拟数据),但我想减少灰色面板位的高度(我用红色涂鸦)以使图表更短(我什至可能会进一步缩小条形的宽度但是需要先知道如何减少灰色背景面板)。

tableq11f<-data.frame(Q11f<-c("A","B","C","D","E"), percent<-c(0.03,0.07,0.22,0.46,0.22))
plot11f<-ggplot(data=tableq11, aes(x=percent, y="Q11", fill=Q11f))+
  geom_col(position = "fill", show.legend = FALSE, width=0.5)+ 
  scale_fill_brewer(palette="Blues")+theme(axis.title.x=element_blank(),
  axis.title.y=element_blank(),axis.text.y=element_blank(),axis.ticks.y=element_blank())+ 
  scale_x_continuous(labels = scales::percent)

更多类似的

【问题讨论】:

更改任何plot chunk options 是否会更改文档中的输出?喜欢图形大小选项或任何out. 选项。 【参考方案1】:

空白处之所以存在,是因为您使用拼凑而成的绘图网格和四个空行,这不是实现目标的合适方式。相反,使用scale_y_discrete(expand = expansion(mult = .075)) 减少条形和绘图边距之间的空间并减小geom_col() 中的条形宽度,最后如 cmets 中所述,在降价块选项中为绘图设置适当的图形大小。

---
title: "Untitled"
output: word_document
---

```r, echo=FALSE, fig.width=5, fig.asp = .15

library(ggplot2)

tableq11f<-data.frame(Q11f=c("A","B","C","D","E"), percent=c(0.03,0.07,0.22,0.46,0.22))

ggplot(data = tableq11f, aes(x = percent, y = "Q11", fill = Q11f)) +
  geom_col(position = "fill",
           show.legend = FALSE,
           width = 0.1) +
  scale_fill_brewer(palette = "Blues") +
  theme(
    axis.title.x = element_blank(),
    axis.title.y = element_blank(),
    axis.text.y = element_blank(),
    axis.ticks.y = element_blank()
  ) +
  scale_x_continuous(labels = scales::percent) +
  scale_y_discrete(expand = expansion(mult = .075))
    
```

这给出了:

【讨论】:

以上是关于减少 ggplot 中的面板高度/宽度并在 R Markdown 中裁剪空白的主要内容,如果未能解决你的问题,请参考以下文章

在闪亮仪表板的选项卡面板中调整ggplot条形图的高度

如何网格化面板图,使其在 R 中的 ggplot 中具有分类变量和不同的 x 变量

将刻面ggplots(facet_wrap)与R中的cowplot对齐

R语言R原生以及ggplot2设置线条类型宽度(粗细)颜色的函数ggplot2手动自定义设置线条类型粗细颜色函数(line typesthicknesscolour)

将水平线添加到 R 中 ggplot2 中的堆叠条形图,并在图例中显示

如何使 ggplot2 中的图例与我的情节高度相同?