首页 > 解决方案 > 减少 ggplot 中的面板高度/宽度并在 R Markdown 中裁剪空白

问题描述

请不要关闭它并告诉我答案是关于删除绘制的数据和轴之间的空间,因为这不是同一个图并且在这里不起作用。使用 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)

ggplot 改变

更像这样

更好的形象

标签: rggplot2graph

解决方案


空白空间在那里,因为您使用拼凑来创建情节网格和四个空行,这不是实现目标的合适方式。取而代之的是,减少条形和绘图边距之间的空间,scale_y_discrete(expand = expansion(mult = .075))并减小条形的宽度geom_col(),最后如评论中所述,在降价块选项中为绘图设置适当的图形大小。

---
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))
    
```

这使:

在此处输入图像描述


推荐阅读