见下面的代码. 我的文档中有一个有限的区域,需要削减宽度. zoom 适用于所有元素(图表、标题、文本等). 但是当我添加一些自定义标签时,它们会被ggsavage自动剪切. 默认情况下,zoom 参数设置为1.

my_doc <- officer::read_docx()

# Dummy data
data <- data.frame(
  day = as.Date("2017-06-14") - 0:364,
  value = runif(365) + seq(-140, 224)^2 / 10000)

p <- ggplot(data, aes(x=day, y=value)) +
  geom_line() + 
  xlab("") + 
  scale_x_date(
    date_labels = "%b %Y") + 
  scale_y_continuous(
    position = "right") + 
  theme(axis.text.x=element_text(angle=30, hjust=1,vjust= 1,
                                 color = 'black'))
p

my_doc <- body_add_gg(my_doc, value = p, width = 2.3, height = 2.8, res = 1200)

my_doc %>% print(target = "doc.docx")

作为结果

enter image description here

我试着调整利润和填充.没有成功.

推荐答案

我认为设置plot.margin将工作:

library(ggplot2)
library(officer)

p <- ggplot(data, aes(x=day, y=value)) +
  geom_line() + 
  xlab("") + 
  scale_x_date(
    date_labels = "%b %Y") + 
  scale_y_continuous(
    position = "right") +
  theme(axis.text.x=element_text(angle=30, hjust=1,vjust= 1,
                                 color = 'black'),
        plot.margin = unit(c(0, 0, 0, 1), "cm")) ## add this in theme

my_doc <- body_add_gg(my_doc, value = p, width = 2.3, height = 2.8, res = 1200)

my_doc %>% print(target = "doc.docx")

word_screenshot

或者,如果您不可能减小地块元素的大小,则使用scale参数使比例变小:

p <- ggplot(data, aes(x=day, y=value)) +
  geom_line() + 
  xlab("") + 
  scale_x_date(
    date_labels = "%b %Y") + 
  scale_y_continuous(
    position = "right") +
  theme(axis.text.x=element_text(angle=30, hjust=1,vjust= 1,
                                 color = 'black'))

my_doc <- body_add_gg(my_doc, value = p, width = 2.3, height = 2.8, res = 1200, scale = 0.5) # scale here

my_doc %>% print(target = "doc.docx")

word_screenshot2

R相关问答推荐

提取rame中对应r中某个变量的n个最小正值和n个最大负值的条目

从API中抓取R数据SON

计算R中的威布尔分布的EDF

如何使用R中的dhrr函数将李克特量表的因子列从长转换为宽?

带有叠加饼图系列的Highmap

在垂直轴中包含多个ggplot2图中的平均值

derrr summarise每个组返回多行?

单个轮廓重叠条的单独图例

使用for循环和粘贴创建多个变量

如何通过匹配R中所有可能的组合来从宽到长旋转多个列?

根据1个变量绘制 colored颜色 发散的 map ,由另一个变量绘制饱和度,ggplot2不工作

正在导出默认的RStudio主题,还是设置括号 colored颜色 ?

将统计检验添加到GGPUBR中的盒图,在R

计算使一组输入值最小化的a、b和c的值

向R中的数据帧添加一列,该列统计另一列中每个唯一值的二进制观测值的数量

通过R:文件名未正确写入[已解决]将.nc文件转换和导出为.tif文件

ArrangeGrob()和类似的替代方法不接受Grob列表.在Grid.Draw,返回:glist中的错误(...):仅允许在glist";中使用Grobs;

基于R中的引用将向量值替换为数据框列的值

根据排名的顶点属性调整曲线图布局(&Q)

在使用ggplot2的情况下,如何在使用coord_trans函数的同时,根据未转换的坐标比来定位geom_瓷砖?