为什么我的条纹颜色错误地映射到 ComplexUpset R 包中指定的组?

问题描述 投票:0回答:1

我正在使用 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")
                              )
      )

这是我的代码的结果:在此处输入图像描述

r upsetplot complex-upset
1个回答
0
投票

为任何好奇的人更新:

我放弃了试图弄清楚为什么会发生这个问题,只是手动设置每个条纹的颜色。

© www.soinside.com 2019 - 2024. All rights reserved.