如何删除用ggplot绘制的ggvenn中的边距?

问题描述 投票:0回答:1

我正在尝试使用 ggplot2 使用 ggvenn 包创建维恩图。但是,当我使用 ggsave 保存图像时,图像周围有很多空白。我尝试使用 par(mar=c(0,0,0,0)) 以及绘图代码本身来设置边距。

可重现的示例

library(ggvenn)
library(ggplot2)
d <- tibble(value   = c(1,     2,     3,     5,     6,     7,     8,     9),
            `Set 1` = c(TRUE,  FALSE, TRUE,  TRUE,  FALSE, TRUE,  FALSE, TRUE),
            `Set 2` = c(TRUE,  FALSE, FALSE, TRUE,  FALSE, FALSE, FALSE, TRUE),
            `Set 3` = c(TRUE,  TRUE,  FALSE, FALSE, FALSE, FALSE, TRUE,  TRUE),
            `Set 4` = c(FALSE, FALSE, FALSE, FALSE, TRUE,  TRUE,  FALSE, FALSE))

p2 = ggplot(d, aes(A = `Set 1`, B = `Set 2`)) +
  geom_venn(fill_color = c("white", "white"), show_percentage = FALSE) +
  theme(axis.line=element_blank(),
      panel.background = element_rect(fill = "white",colour = "white"),
      axis.text.x=element_blank(),
      axis.text.y=element_blank(),
      axis.ticks=element_blank(),
      axis.title.x=element_blank(),
      axis.title.y=element_blank(),
      legend.position="none",
      panel.border=element_blank(),
      panel.grid.major=element_blank(),
      panel.grid.minor=element_blank(),
      plot.background=element_blank()) +
      theme(plot.margin=grid::unit(c(0,0,0,0), "mm"))

#ggsave(plot = p2, "/plot2.tiff"

结果是具有大白边的图像

https://imgur.com/a/N28KbZi

如何减少利润?

我尝试使用 par(mar=c(0,0,0,0) 和主题 (plot.margin=grid::unit(c(0,0,0,0),"mm")) 来减少边距

r ggplot2 plot margins ggvenn
1个回答
0
投票

要在维恩图中获得实际的圆圈,您可能需要使用

coord_fixed()
。使用
expand = FALSE
关闭轴扩展。我们可以添加
theme_void()
来删除所有轴和边距等。

ggplot(d, aes(A = `Set 1`, B = `Set 2`)) +
  geom_venn(fill_color = c("white", "white"), show_percentage = FALSE) +
  coord_fixed(expand = FALSE) +
  theme_void()

这应该给出一个具有合理边距的图。

如果您想进一步减少它们,请对

coord_fixed()
给予更严格的轴限制,例如:

coord_fixed(expand = FALSE, xlim = c(-1.7, 1.7), ylim = c(-1.4, 1.4))

© www.soinside.com 2019 - 2024. All rights reserved.