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

如何调整Complex Upset图的字体大小与列标签方向?

解决Complex Upset图字体放大与列标签对齐问题

1. 全局放大所有元素字体大小

要统一提升图表所有元素的字体可读性,需在upset_default_themes的全局文本设置中指定size参数,同时补充强化坐标轴标题、刻度的字体大小(避免部分元素未被全局覆盖):

# where 'sets' comes from colnames() in the matrix
(upset(data, sets,
       min_size=1,
       name='Multiple Sets',
       wrap=TRUE,
       # 全局设置字体家族与大小
       themes=upset_default_themes(
         text=list(element_text(family='Trebuchet MS', size=14)) # 按需调整size数值
       ),
       base_annotations = list(
         'Intersection size' = intersection_size(
           mapping=aes(fill=3Plus)
         ) +
           scale_fill_manual(values = c('YES'='orange','NO'='black')) +
           ylab("Count of Intersection") +
           theme(
             legend.position = "none",
             # 单独强化坐标轴文本大小(可选,若全局设置已生效可省略)
             axis.title = element_text(size=16),
             axis.text = element_text(size=14)
           )
       ),
       set_sizes=(
         upset_set_size() +
           ylab('Count of Set') +
           theme(
             axis.title = element_text(size=16),
             axis.text = element_text(size=14)
           )
       )
))

2. 修复列标签旋转后的对齐问题

你之前错误地在intersection_size()中直接传递text参数,正确方式是在theme()中调整axis.text.x属性,设置旋转角度与对齐参数:

'Intersection size' = intersection_size(
  mapping=aes(fill=MCNFlag)
) +
  scale_fill_manual(values = c('YES'='orange','NO'='black')) +
  ylab("Count of Intersection") +
  theme(
    legend.position = "none",
    # 旋转x轴标签并调整对齐
    axis.text.x = element_text(
      angle=90, 
      hjust=1,  # 右对齐避免标签溢出图表
      vjust=0.5, # 垂直居中对齐
      size=14 # 匹配全局字体大小
    )
  )

说明:axis.text.x专门控制交集列的标签样式,hjust=1和vjust=0.5是旋转标签的标准对齐参数,不会触发"未知参数"错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:22:46