echarts4r图表tooltip中展示额外变量的实现问题
在echarts4r的Tooltip中展示额外变量的解决方案
我来帮你搞定这个tooltip显示额外字段的问题!你之前的代码核心问题是没有正确访问到数据中的qsec、cyl和hp字段——this.qsec并不是echarts tooltip formatter里获取数据的正确方式,咱们换个思路就能解决。
关键原理
echarts4r在传递数据时,会把数据框里的所有列都打包到每个数据点的params.data对象中,所以只要你的数据框包含qsec、cyl、hp这些字段,就能在formatter里通过params.data.字段名直接调用。
修正后的完整代码
library(dplyr) library(echarts4r) mtcars %>% tibble::rownames_to_column("model") %>% # 保留车型名称 e_charts(wt) %>% # x轴为wt e_scatter(mpg, bind = model) %>% # y轴为mpg,绑定model作为系列名称 e_tooltip( formatter = htmlwidgets::JS(" function(params) { // 拼接tooltip的HTML内容 return '<strong>' + params.name + '</strong><br />' + 'wt: ' + params.value[0] + '<br />' + 'mpg: ' + params.value[1] + '<br />' + 'qsec: ' + params.data.qsec + '<br />' + 'cyl: ' + params.data.cyl + '<br />' + 'hp: ' + params.data.hp; } ") )
代码说明
- 数据处理部分:确保
mtcars转换后的tibble保留了qsec、cyl、hp所有需要的字段,这一步你已经做对了。 - Tooltip formatter:
params.name对应你绑定的model字段(车型名称)params.value[0]是x轴的wt值,params.value[1]是y轴的mpg值params.data.qsec、params.data.cyl、params.data.hp直接从原始数据中提取你需要的额外字段
这样修改后,鼠标悬停在散点上时,tooltip就会显示所有你想要的内容啦!
内容的提问来源于stack exchange,提问作者jyjek
相关产品推荐
相关产品推荐

