# 加载必要的库
library(UpSetR)
# 创建数据
set1 <- c("A", "B", "C")
set2 <- c("A", "C", "D")
set3 <- c("B", "D", "E")
set4 <- c("A", "F", "G")
# 将数据放入列表中
# 列表元素如果没有names将会报错
my_sets <- list(set1 = set1, set2 = set2, set3 = set3, set4 = set4)
# 绘制 Set 图
upset(fromList(my_sets))
# 加载必要的库
library(UpSetR)
# 创建数据
df <- data.frame(
set1 = c("A", "B", "C"),
set2 = c("A", "C", "D"),
set3 = c("B", "D", "E"),
set4 = c("A", "F", "G")
)
# 绘制 Set 图
upset(fromList(df))

- 参数优化部分
主要内容来自博客:
https://blog.csdn.net/weixin_54004950/article/details/128358279
#调整与美化后的集合图#
upset(fromList(data),
nsets=length(data),#显示数据集的所有数据,nsets = 数值调整可视化数据集数量
nintersects=30,#显示前多少个
sets=c("set1","set2","set3","set4","set5","set6"), # 指定集合或用keep.order = TRUE保持集合按输入的顺序排序
number.angles = 0, #交互集合柱状图的柱标倾角
point.size=4, #图中点的大小
line.size=1, #图中连接线粗细
mainbar.y.label="Intersection size", #y轴的标签
main.bar.color = 'black', #y轴柱状图颜色
matrix.color="black", #x轴点的颜色
sets.x.label="Set size", #x轴的标签
sets.bar.color=brewer.pal(6,"Set1"),#x轴柱状图的颜色;Set1中只有9个颜色,Set3中有12个颜色,Paired中有12个颜色
mb.ratio = c(0.7, 0.3), #bar plot和matrix plot图形高度的占比
order.by = "freq", #y轴矩阵排序,如"freq"频率,"degree"程度
text.scale=c(1.5,1.5,1.5,1.5,1.5,1), #6个参数intersection size title(y标题大小),intersection size tick labels(y刻度标签大小), set size title(set标题大小), set size tick labels(set刻度标签大小), set names(set 分类标签大小), numbers above bars(柱数字大小)的设置
shade.color="red" #图中阴影部分的颜色
)
#高亮显示特定几个集合的交集
upset(fromList(data),
nsets=length(data),#显示数据集的所有数据,nsets = 数值调整可视化数据集数量
nintersects=30,#显示前多少个
sets=c("set1","set2","set3","set4","set5","set6"), # 指定集合或用keep.order = TRUE保持集合按输入的顺序排序
number.angles = 0, #交互集合柱状图的柱标倾角
point.size=4, #图中点的大小
line.size=1, #图中连接线粗细
mainbar.y.label="Intersection size", #y轴的标签
main.bar.color = 'black', #y轴柱状图颜色
matrix.color="black", #x轴点的颜色
sets.x.label="Set size", #x轴的标签
sets.bar.color=brewer.pal(6,"Set1"),#x轴柱状图的颜色;Set1中只有9个颜色,Set3中有12个颜色,Paired中有12个颜色
mb.ratio = c(0.7, 0.3), #bar plot和matrix plot图形高度的占比
order.by = "freq", #y轴矩阵排序,如"freq"频率,"degree"程度
text.scale=c(1.5,1.5,1.5,1.5,1.5,1), #6个参数intersection size title(y标题大小),intersection size tick labels(y刻度标签大小), set size title(set标题大小), set size tick labels(set刻度标签大小), set names(set 分类标签大小), numbers above bars(柱数字大小)的设置
shade.color="red", #图中阴影部分的颜色
queries=list(list(query=intersects,params=list("set1","set2"),color="red",active=T),#设置自己想要展示的特定组的交集,通过queries参数进行设置,需要展示几个关注组合的颜色,就展示几个
list(query=intersects,params=list("set2","set3"),color="blue",active=T),
list(query=intersects,params=list("set6","set5"),color="green",active=T),
list(query=intersects,params=list("set4","set6","set1"),color="yellow",active=T),
list(query=intersects,params=list("set4","set5","set6"),color="purple",active=T),
list(query=intersects,params=list("set4","set5","set3"),color="orange",active=T) )
)