You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整UpSetR绘图行序,按集合频率反向排列?

UpSetR行顺序调整解决方案

要让UpSetR的行(垂直排列的集合列表)按横轴集合频率排序,核心是强制使用自定义的集合顺序,之前操作无效的原因是忽略了keep.order参数,具体步骤如下:

  1. 生成目标集合顺序

    • 按集合频率自动排序:计算每个集合的出现次数,按频率降序生成集合名称向量(高频集合排前,对应你要的Fentanyl在顶的需求)
      sets_order <- names(sort(colSums(df), decreasing = TRUE))
      
    • 手动指定顺序:直接定义固定的集合排列顺序
      sets_order <- c("Fentanyl", "Morphine", "Midazolam", "Lorazepam")
      
  2. 绘图时启用强制顺序
    在upset()函数中传入目标集合顺序,同时必须添加keep.order = TRUE(否则UpSetR会自动覆盖自定义排序,使用默认的集合大小排序逻辑):

    library(UpSetR)
    
    upset(df,
          sets = sets_order,
          keep.order = TRUE,
          # 可选:调整图表标签
          mainbar.y.label = "交集数量",
          sets.x.label = "集合大小")
    

执行后就能实现Fentanyl位于行顶部、Lorazepam位于底部的效果,行顺序严格遵循你指定的排列逻辑。

内容的提问来源于stack exchange,提问作者docalexh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 13:14:54