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

如何为Apache ECharts的detail.formatter配置第二个变量(如date)?

解决Apache ECharts仪表盘detail自定义date变量不显示的问题

问题出在ECharts的模板字符串formatter只默认解析内置的{value}变量,自定义的date属性不会被自动识别替换。要让date正常显示,你需要改用函数式formatter,直接在函数里访问你的数据变量,拼接出带样式的文本。

修改后的核心代码

把原来的字符串数组formatter替换成:

detail: {
  formatter: function() {
    // 直接访问gaugeData里的date属性
    return `{header|${gaugeData.value}}\n{subHeader|${gaugeData.date}}`;
  },
  // 定义对应富文本样式
  rich: {
    header: {
      fontSize: 24,
      fontWeight: 'bold',
      color: '#333'
    },
    subHeader: {
      fontSize: 14,
      color: '#666',
      marginTop: 8
    }
  }
}

完整示例代码

// 你的数据变量
const gaugeData = {
  value: 75,
  date: '2024-05-20'
};

// 初始化ECharts实例
const myChart = echarts.init(document.getElementById('main'));

// 图表配置项
const option = {
  series: [
    {
      type: 'gauge',
      detail: {
        formatter: function() {
          return `{header|${gaugeData.value}}\n{subHeader|${gaugeData.date}}`;
        },
        rich: {
          header: {
            fontSize: 28,
            fontWeight: 'bold',
            color: '#2f4554'
          },
          subHeader: {
            fontSize: 16,
            color: '#939393',
            lineHeight: 20
          }
        }
      },
      data: [
        {
          value: gaugeData.value,
          name: '完成率'
        }
      ]
    }
  ]
};

// 渲染图表
myChart.setOption(option);

原理说明

函数式formatter可以直接访问外层作用域的gaugeData变量,手动将date拼接到返回的富文本字符串中,避开了模板字符串仅支持内置{value}变量的限制,从而让date正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:25:41