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

如何在echarts4r的tooltip中正确使用valueFormatter?

解决echarts4r中tooltip格式化失效问题

问题出在trigger为"axis"时,直接在e_tooltip中使用valueFormatter的配置逻辑错误。轴触发模式下,需要调整配置方式才能保留彩色圆点并实现数值格式化,以下是两种可行方案:

方案一:针对系列配置valueFormatter

将valueFormatter绑定到具体的图表系列(如e_bar)而非全局tooltip配置中,适配轴触发模式的逻辑:

library(dplyr)
library(echarts4r)

mtcars |>
  group_by(cyl, gear) |> 
  summarise(mpg = mean(mpg)) |>
  mutate(gear = as.character(gear)) |>
  e_charts(gear) |>
  e_bar(mpg, 
        valueFormatter = htmlwidgets::JS("(value) => 'MPG is ' + value.toFixed(2)")) |>
  e_tooltip(trigger = "axis")

方案二:用formatter自定义完整tooltip内容

通过formatter函数手动构建tooltip结构,利用ECharts内置的marker属性保留彩色圆点,同时完全自定义数值显示:

library(dplyr)
library(echarts4r)

mtcars |>
  group_by(cyl, gear) |> 
  summarise(mpg = mean(mpg)) |>
  mutate(gear = as.character(gear)) |>
  e_charts(gear) |>
  e_bar(mpg) |>
  e_tooltip(
    trigger = "axis",
    formatter = htmlwidgets::JS("(params) => {
      let content = params[0].name + '<br/>';
      params.forEach(item => {
        content += `${item.marker} ${item.seriesName}: MPG is ${item.value.toFixed(2)}<br/>`;
      });
      return content;
    }")
  )

关键说明:

  • 方案一遵循ECharts轴触发模式的配置规则,仅针对系列数值做格式化,自动保留默认tooltip的彩色圆点与结构。
  • 方案二通过手动拼接内容,更灵活可控,item.marker就是默认的彩色圆点元素,确保样式与默认tooltip一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:05:43