如何在rAmCharts堆叠条形图的Y轴或标签添加百分比符号?
在rAmCharts的100%堆叠条形图中为Y轴和数值标签添加百分号
你可以通过自定义JavaScript格式化函数,分别给Y轴标签和条形上的数值标签添加%符号,以下是修改后的完整代码:
df <- data.frame( date = c('2016-12', '2017-12', '2018-12', '2019-12', '2020-12', '2021-12'), X4 = c(NA, NA, 1, NA, 3, NA), X5 = c(3, 2, 4, 1, 2, 3), X6 = c(1, 2, 1, 2, 3, 4), X7 = c(1, 2, 3, 4, 5, 6), X8 = c(2, NA, 3, 3, 2, 4), X9 = c(4, 3, 2, 1, NA, 2) ) library(rAmCharts) library(magrittr) amBarplot( x = "date", y = colnames(df)[-c(1)], data = df, stack_type = "100", legend = TRUE, show_values = TRUE ) %>% # 设置Y轴标签添加%符号 setYAxis( labelFunction = JS("function(value) { return value + '%'; }") ) %>% # 设置每个条形的数值标签添加%符号 setGraphs( labelFunction = JS("function(graphDataItem) { return graphDataItem.values.value + '%'; }") ) %>% setLegend(position = "bottom", useMarkerColorForLabels= TRUE)
关键说明:
- Y轴标签格式化:通过
setYAxis()的labelFunction传入JS函数,直接将Y轴数值拼接%符号。因为stack_type="100"已经将数值转换为百分比比例(比如数值50代表50%),所以不需要额外计算。 - 条形数值标签格式化:
setGraphs()的labelFunction需要从graphDataItem中提取对应数值,再拼接%符号,确保每个条形上的数值都显示为百分比格式。
内容的提问来源于stack exchange,提问作者sayile firahs
相关产品推荐
相关产品推荐

