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

在R语言中用Euler图可视化带百分号百分比值的问题

解决eulerr包Euler图显示带百分号的原始数值问题

问题核心

你遇到的三个方案的局限性:

  • 方案1的labels参数仅用于设置集合名称(如A、B),无法显示交集的数值
  • 方案2的type="percent"会自动计算各区域占总样本的比例(总样本为21+24+14=59,因此得到36%、41%、24%),并非你需要的原始百分比
  • 方案3能显示原始数值,但缺少百分号

解决方案

直接自定义quantities的labels参数,手动为原始数值添加百分号即可。eulerr的plot.euler()函数允许通过quantities$labels传入自定义文本,完全控制显示内容。

完整代码示例

library(eulerr)

# 原始数据
eu_data <- c(A=21, B=24, "A&B"=14)

# 构造带百分号的自定义标签
custom_labels <- paste0(eu_data, "%")

# 绘制Euler图
plot(
  euler(eu_data),
  quantities = list(
    labels = custom_labels,  # 使用自定义带百分号的标签
    fontsize = 20
  ),
  fills = list(fill = c("#ED1C24", "#000000"), alpha = 0.75),
  edges = "black",
  labels = list(fontsize = 20)  # 保留集合名称A、B的显示
)

代码说明

  • custom_labels <- paste0(eu_data, "%"):将原始数值拼接百分号,生成c("21%", "24%", "14%")的向量
  • quantities = list(labels = custom_labels):指定使用自定义标签显示各区域数值,替代函数默认的计算逻辑
  • 若不需要显示集合名称(A、B),可将labels = list(fontsize = 0, col = NA)加入plot参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 15:03:20