在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
相关产品推荐
相关产品推荐

