我正在尝试使用 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"
结果是具有大白边的图像
如何减少利润?
我尝试使用 par(mar=c(0,0,0,0) 和主题 (plot.margin=grid::unit(c(0,0,0,0),"mm")) 来减少边距
要在维恩图中获得实际的圆圈,您可能需要使用
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))