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

R语言waterfalls包如何设置瀑布图标签为百分比显示格式

R waterfalls 包瀑布图设置百分比格式数值标签

waterfall()函数没有内置的百分比标签开关,通过自定义标签传入即可实现需求,操作如下:

  • 首先整理绘图数据,提前计算自动生成的总计值(和calc_total = TRUE生成的总计逻辑保持一致)
  • 将原始数值+总计值统一格式化为百分比字符串,作为标签传入labels参数
  • 注意开启总计后,填充色的数量要对应「原始分类数+1」,避免总计块配色不符合预期

可直接运行的示例代码

library(waterfalls)
# 可选加载scales包做标准化百分比格式化,不想装可以用后面的自定义方法
library(scales)

# 原始绘图数据
plot_df <- data.frame(
  category = letters[1:5],
  value = c(1, -0.2, 0.3, -0.1, -0.15)
)

# 计算总计值
total_value <- sum(plot_df$value)
# 生成带总计的百分比标签,accuracy参数控制百分比精度,1为整数百分比
percent_labels <- percent(c(plot_df$value, total_value), accuracy = 1)

# 不依赖scales包的替代格式化方法,按需选用
# percent_labels <- paste0(round(c(plot_df$value, total_value)*100, 0), "%")

waterfall(
  .data = plot_df,
  # 因为多了总计块,渐变颜色生成6个,和块数量匹配
  fill_colours = colorRampPalette(c("#1b7cd6", "#d5e6f2"))(6),
  fill_by_sign = FALSE,
  calc_total = TRUE,
  total_axis_text = 'total',
  labels = percent_labels, # 传入自定义百分比标签
  # 可选:通过rect_text_args调整标签样式,比如大小、颜色
  rect_text_args = list(cex = 0.85, col = "#ffffff")
)

常见踩坑:如果不提前给总计准备对应位置的标签,总计块会显示空值或者默认的小数值;填充色数量和块数不匹配时,最后一个总计块会复用开头的颜色,破坏渐变效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 14:31:00