我正在使用 R 中的 ComplexUpset 包创建一个翻转图,并尝试根据另一个数据帧的指定属性为我的集合的条纹着色。我使用的方法几乎与 this example 相同,但无论出于何种原因,其中两个组的颜色不正确。我完全不知道这是怎么发生的,因此不知道如何解决它。
基本上,任何以 C 结尾的集合都应该是鲑鱼色,任何以 M 结尾的集合都应该是蓝色的,而以 S 结尾的集合应该是绿色的。然而,“TvC”集本应是鲑鱼色时却是蓝色,而“SvM”集本应是蓝色时却是鲑鱼色。
library(ComplexUpset)
combined2 <- data.frame(letter = c("a", "b", "c", "d", "e"),
SvC = c(1,0,1,0,0),
TvC = c(1,1,1,1,0),
MvC = c(1,0,0,0,0),
SvM = c(0,0,1,0,0),
TvM = c(0,1,1,0,0),
TvS = c(1,0,1,0,1)
)
combined_metadata <- data.frame(set = c("SvC", "TvC", "MvC", "SvM", "TvM", "TvS"), #set name
relative_to = c("C", "C", "C", "M", "M", "S")) #set attribute
upset(combined2,
intersect = treats,
mode = 'inclusive_intersection',
intersections = list(
"SvC",
"TvC",
"MvC",
"SvM",
"TvM",
"TvS",
c("SvC", "TvC"),
c("SvC", "TvC", "MvC"),
c("SvM", "TvM")),
stripes = upset_stripes(data = combined_metadata,
aes(color = combined_metadata$relative_to),
colors = c("C" = "lightsalmon",
"M" = "lightskyblue2",
"S" = "palegreen3")
)
)
这是我的代码的结果:在此处输入图像描述
为任何好奇的人更新:
我放弃了试图弄清楚为什么会发生这个问题,只是手动设置每个条纹的颜色。