如何在R的gglikert函数中指定条形高度(Rmarkdown转PDF)
解决gglikert图中不同问题数量下条形高度不一致的问题
你修改的width参数是控制条形宽度的,和条形高度完全无关。条形高度由绘图区域的垂直空间分配决定:问题数量越多,每个问题的条形能分到的垂直空间就越少,所以看起来更矮。
下面是几种有效的解决方法:
方法1:固定绘图的垂直尺寸(最直接)
在Rmarkdown的代码块选项里设置fig.height,按问题数量分配高度——比如每个问题分配1单位高度,6个问题设fig.height=6,3个问题设fig.height=3,这样两个图的条形高度就能保持一致。
修改后的代码示例:
6个问题的图
```{r fig.height=6} p = gglikert(df %>% select(-grouping)) p
### 3个问题的图 ```r ```{r fig.height=3} p2 = gglikert(df %>% select(-c(grouping,q4,q5,q6))) p2
## 方法2:动态计算绘图高度(更灵活) 如果不想手动设置高度,可以通过代码动态计算选中的问题数量,自动匹配`fig.height`: ```r ```{r fig.height=!r df %>% select(-grouping) %>% ncol()} p = gglikert(df %>% select(-grouping)) p
```r ```{r fig.height=!r df %>% select(-c(grouping,q4,q5,q6)) %>% ncol()} p2 = gglikert(df %>% select(-c(grouping,q4,q5,q6))) p2
## 方法3:微调y轴间距(辅助优化) 如果想让条形更紧凑,可以用`scale_y_discrete()`的`expand`参数减少上下空白: ```r p = gglikert(df %>% select(-grouping)) + scale_y_discrete(expand = c(0.05, 0)) p
内容的提问来源于stack exchange,提问作者Homer Jay Simpson
相关产品推荐
相关产品推荐

