如何在echarts4r的e_pie环形图中显示数值与百分比
在echarts4r的环形饼图中显示数值与百分比
没问题,我帮你搞定这个需求!echarts4r里可以通过e_label()函数自定义饼图标签的显示内容,完全能实现你想要的「数值+百分比」效果,和plotly里textinfo='value+percent'的表现一致。
直接看修改后的完整代码:
library(echarts4r) library(dplyr) mtcars %>% head() %>% dplyr::mutate(model = row.names(.)) %>% e_charts(model) %>% e_pie(carb, radius = c("50%", "70%")) %>% # 核心:配置标签显示内容与样式 e_label( show = TRUE, # 用JS回调拼接名称、数值、百分比 formatter = htmlwidgets::JS("function(params) { return params.name + '<br/>' + params.value + ' (' + params.percent + '%)' }"), position = "outside", # 标签放在饼图外侧,避免环形遮挡 distance = 10, # 调整标签与饼图的间距 borderColor = "#000000", # 增加标签边框,贴合plotly示例风格 borderWidth = 0.75 ) %>% e_title("Donut chart with value & percent")
关键部分说明:
e_label()是echarts4r控制标签显示的核心函数,默认可能只显示分类名称,我们需要手动开启并自定义格式formatter用JS回调函数拼接内容:params.name对应车型名称,params.value是carb的原始数值,params.percent是echarts自动计算的百分比(如果需要保留指定小数位,可以改成params.percent.toFixed(1))position = "outside"让标签显示在饼图外侧,可读性更强;如果想放在环形内部,改成"inside"即可- 额外添加的
borderColor和borderWidth是为了贴合你给出的plotly示例的标签样式,可根据需求调整
这样运行后,就能得到和plotly示例效果一致的环形图,同时显示数值和百分比啦!
内容的提问来源于stack exchange,提问作者Mohamed Mostafa El-Sayyad
相关产品推荐
相关产品推荐

