使用ggvenn::ggvenn()绘制韦恩图时组标签超出画布边界的问题
解决ggvenn韦恩图标签超出画布的问题
问题原因
par(mar)是base R绘图系统的边距调整参数,而ggvenn基于ggplot2绘图系统,两者不兼容,所以你之前的调整操作无效。
解决方案
1. 扩展ggplot绘图边距
直接给ggvenn返回的ggplot对象添加边距设置,为长标签留出足够空间:
pacman::p_load(dplyr, ggvenn) my_dt <- tibble( value = c(1 : 8), long_group = c(TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE), group_a = c(TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE), group_b = c(TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE), group_c = c(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE) ) ggvenn(my_dt) + theme(plot.margin = margin(1, 4, 1, 1, "cm")) # 边距顺序为上、右、下、左,按需增大右侧数值
2. 调整标签位置或简化文本
- 若不想扩展画布,可通过
label_params调整标签的水平对齐,将长标签向图内偏移:
ggvenn(my_dt, label_params = list(hjust = 1.2)) # hjust>1会让标签向右(相对默认位置)移动,可按需调整数值
- 如果允许简化标签,用
set_name自定义更短的标签文本:
ggvenn(my_dt, set_name = c("LG", "group_a", "group_b", "group_c")) # 替换长标签为缩写
内容的提问来源于stack exchange,提问作者Kang
相关产品推荐
相关产品推荐

