将 ggplot2 图粘贴到 Word 中时,可以删除白色 space 吗?

Can you remove white space when pasting a ggplot2 plot into Word?

我正在尝试从 ggplot2 中删除绘图周围的边距。我在 waffle 上下文中工作,因此下面的可重现示例采用这种形式。

我已经按照 Remove Plot Margins in ggplot2 中提供的答案进行操作,但仍然得到一个奇怪的结果。我 运行 下面的代码,并将绘图的背景设为黄色以突出显示边距。

library("waffle")

parts <- data.frame(
  names = LETTERS[1:4],
  vals = c(80, 30, 20, 10)
)

waffle(parts, rows = 8, xlab = "Each Square = X",legend_pos = "bottom") + 
  guides(fill = guide_legend(ncol=1))  +
  theme(plot.margin = margin(0,0,0,0,unit = "cm"),
        legend.margin = margin(b=0,unit="cm"),
        plot.background = element_rect(fill="yellow"))

ggsave(file = "graphs/test.jpg")

下图是我将jpg粘贴到Word中看到的。

黄色边框确认边距指定正确,但在虚线内部的图形周围出现白色边框。有没有办法避免这种情况?

我也在为同样的问题苦苦挣扎。在 waffle 函数中,您不能将方形边框的颜色更改为透明。但是您可以使用 ggplot2 生成相同的华夫饼图。检查下面的代码:

library(tidyverse)

parts <- data.frame(
  names = LETTERS[1:4],
  vals = c(80, 30, 20, 10)
)

nrw = 8 # - number of rows
brd = .02 # - space between squares

parts %>%
  as_tibble() %>%
  transmute(sq = map2(names, vals, ~rep(.x, .y))) %>%
  unnest() %>%
  mutate(rn = row_number() %>% `/`(nrw) %>% ceiling()) %>%
  group_by(rn) %>%
  mutate(
    cn = row_number(),
    xmin = rn - .5 + brd,
    xmax = rn + .5 - brd,
    ymin = cn - .5 + brd,
    ymax = cn + .5 - brd
  ) %>%
  ggplot(aes(
    xmin = xmin,
    xmax = xmax,
    ymin = ymin,
    ymax = ymax,
    fill = sq
  )) +
  geom_rect() +
  coord_equal() +
  theme_void() +
  theme(plot.background = element_rect(fill = 'yellow'))