如何在R语言中调整UpSet图的y轴标题位置?
UpSet图Y轴标题位置调整方案
UpSetR基于R的base绘图系统渲染,你可以通过以下两种方式调整Y轴标题位置,解决长变量名导致的标题偏移问题:
方法1:调用绘图函数时直接通过内置参数调整
upset()提供了专门的参数控制不同坐标轴的元素间距:
- 调整左侧集合大小Y轴:传入
set_size.mgp参数,对应base绘图的mgp参数,三个数值分别为「轴标题距离、刻度标签距离、轴线距离」,默认值为c(3,1,0),调小第一个值即可让标题右移。 - 调整上方交集柱状图Y轴:传入
mainbar.mgp参数,规则同上。 - 若左侧留白过多,可先通过
par(mar)调整全局绘图边距,四个数值分别对应下、左、上、右的边距大小。
示例代码如下:
library(UpSetR) library(dplyr) movies <- read.csv( system.file("extdata", "movies.csv", package = "UpSetR"), header=TRUE, sep=";" ) movies_upd <- movies %>% dplyr::select( moviechoiceAdventurefilm = Adventure, Children, Action ) %>% as.data.frame() # 按需调整边距,第二个值对应左边距 par(mar = c(2, 3.5, 2, 1)) # 调整两个Y轴的标题距离 upset( movies_upd, set_size.mgp = c(1.2, 1, 0), # 左侧Y轴标题右移 mainbar.mgp = c(1.5, 1, 0) # 上方柱状图Y轴标题下移 )
方法2:手动重设标题实现灵活控制
如果需要更自由的位置调整,可以先关闭默认标题,再通过title()函数手动添加并控制位置:
# 关闭默认的集合大小Y轴标题显示 upset(movies_upd, set_size.show = FALSE) # 手动添加Y轴标题,line参数越小,标题越靠近绘图区 title(ylab = "集合元素数量", line = 1)
内容的提问来源于stack exchange,提问作者icedcoffee
相关产品推荐
相关产品推荐

