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

如何在echarts4r的坐标轴与提示框中修改千分位和小数分隔符

解决echarts4r中数字格式适配问题

直接上可运行的完整代码,实现y轴和提示框的数字用点作为千分位分隔符、逗号作为小数分隔符:

library(dplyr)
library(echarts4r)

my_data <- data.frame(x=1:3, y=c(1000, 2000, 2500.5))

e_charts(my_data, x = x) %>% 
  e_bar(y) %>% 
  # 配置y轴的数字格式化
  e_y_axis(
    formatter = JS("function(value) {
      // 先转成英文标准千分位格式,再替换分隔符
      let numStr = value.toLocaleString('en-US');
      return numStr.replace(/,/g, '.').replace(/\\./, ',');
    }")
  ) %>% 
  # 配置提示框的自定义格式化(包含数字格式转换)
  e_tooltip(
    formatter = JS("function(params) {
      // 处理y值的格式
      let formattedY = params.value[1].toLocaleString('en-US')
        .replace(/,/g, '.')
        .replace(/\\./, ',');
      // 这里可以根据需求自定义提示框的其他内容
      return `<div style='padding: 8px;'>
                <div>类别: ${params.name}</div>
                <div>数值: ${formattedY}</div>
              </div>`;
    }")
  )

关键部分说明

  1. y轴格式化
    用e_y_axis的formatter参数传入JS函数:
  • 先用toLocaleString('en-US')把数字转成英文标准的千分位格式(比如2500.5会变成"2,500.5")
  • 用正则替换:把所有千分位的逗号,换成点.,再把小数位的点.换成逗号,, 最终得到"2.500,5"
  1. 提示框格式化
    用e_tooltip的formatter自定义JS函数:
  • 先提取出y轴数值params.value[1](因为params.value是[x,y]的数组),用同样的逻辑转换格式
  • 可以自由修改提示框的HTML结构,添加其他自定义内容(比如样式、额外字段等),完全满足自定义操作需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:32:26