在 Rmd 文件中渲染时 ggmap 太小?

A ggmap too small when rendered within a Rmd file?

我生成了一个 ggmap 图,从 r 脚本执行时看起来很完美;但是,Rmd 文件中的同一图看起来太小了一半的宽度,并且不成比例 w.r.t 绘制的点。

什么设置有助于使 ggmap 图尽可能多地 space?我的绘图代码如下所示:

library(tidyverse)
library(ggmap)
library(ggplot2)

ggmap(map) + 
  scale_colour_manual(values = colorSpec) +
  geom_point(data=df, aes(x=lon, y=lat, colour=Technology, size=score), 
             position = position_jitterdodge(jitter.width=0.01, jitter.height=0.01, seed=1)) +
  theme(legend.position="bottom", plot.title = element_text(hjust = 0.5), 
        legend.text=element_text(size=6), legend.title = element_blank())

这是从 r 脚本绘制时的正确预期输出:

这是从 rmd 和生成的 PDF 文件绘制时较小且不成比例的输出:

问题不是来自 ggplot,而是来自降价设置(例如图形边距)。 您可以尝试在降价中调用 ggplot 块时指定 plotting area

# using knitr::spin()
#+ out.width = "100%", fig.align = "center", echo=FALSE

# using Rmarkdwon
```{r, out.width = "100%", fig.align = "center", echo=FALSE}
   your ggplot code
```
# or

```{r, fig.width=10, fig.height=2, fig.fullwidth=TRUE}
    your ggplot code
```

您也可以尝试通过 options(width="a high value here")

增加页面的整体宽度

请注意,如果您使用模板,上述所有选项都将失败,因为您需要修改模板 css 文件。如果您做不到,那么您可能需要考虑将 ggplot 另存为图像并将其导入到您的文档中。

对于那些对 knitr::spin() 感到疑惑的人,我建议花一些时间阅读它 (here or here