【发布时间】:2017-05-31 08:34:55
【问题描述】:
虽然我在这里使用水平条形图作为示例,但这本身不是问题。一般问题是如何处理使用后在 rmarkdown 中围绕 ggplots 创建的空白
+coord_fixed(ratio=...)
为了减少条形图使用的空间,尤其是在很少因素的情况下,我更喜欢水平条形图,我使用 coord_fixed(ratio=...) 在条形的宽度和长度之间有一个合理的比率。
情节本身看起来像我想要的方式(见下面的第一个例子),但它周围有很多空白,我试图通过在 knitr-header 中使用 fig.height = ... 来删除它。正如下一个示例所示,结果并不理想。
library(ggplot2)
library(ggstance)
library(dplyr)
X <- data.frame(X = sample(c("A", "B"), 30, replace = TRUE))
X <- X %>% group_by(X) %>% summarise(n = n())
ggplot(X, aes(y = X, x = n))+
geom_barh(stat = "identity")+
coord_fixed(ratio = 1)+
ggtitle("blub")
在我使用 x = 3 的 rmarkdown 中使用它; x = 1 ; x=0.5:
```{r,fig.height = x}
# see code above
```
这会导致:
fig.height=3
fig.height=1
fig.height=0.5
我希望它能做什么:
- 裁剪白色边距
- 同时保持绘图(绘图 +(轴)标题)区域本身不变
后者显然不会发生,因为情节区域变窄并且标题被移到情节内部。
我不知道是在 ggplot 中还是在 knitr 中找到解决方案。最重要的是,理想的解决方案应该很容易自动化,以便在循环内使用(使解决方案适应不断变化的因素数量)。
【问题讨论】:
-
不确定这是否是您的真实代码,但它是 fig.height(您有 fig.heigth),因此可能无法按您希望的那样工作。
-
@sconfluentus 感谢您的注意,但检查真实代码,我可以说我在那里拼写正确。
标签: r ggplot2 r-markdown