如何使用 ECharts 的 formatter 指定国际数字格式?

How do you use ECharts' formatter to specify international number formats?

我正在构建一个 API 来创建 ECharts 配置,并希望数据标签根据最终用户从何处读取图表以正确的格式显示。

例如,如果图表中的数字是 10,000,我希望它在北美显示为 10,000,而 10.000 在欧洲。

ECharts好像不能设置全局格式,所以我需要使用formatter选项。我认为这就像传递一个使用 JavaScript 的 toLocaleString()Intl.NumberFormat 的函数一样简单,但 ECharts 文档使这看起来更加复杂。

我还没有找到任何 formatter 的例子来显示常见格式化场景的输入和输出,所以我希望能得到一些帮助来理解正确的方法。

下面是我希望包含在 formatter 中的函数的一个非常简单的示例,但是这个特定示例不起作用。

formatter: function(d){
   return d.toLocaleString()
}

回答我自己的问题,以便需要此信息的人将来可以找到它。结果很简单,但是我到处都找不到像这样简单的例子!

因为 ECharts 已经在我的图表上显示一个值作为默认标签,我假设我在 formatter 中包含的任何函数都会使用该值(这是我问题中简单函数的假设)。

我了解到,当您向 formatter 添加函数时,它不会自动使用默认值。您需要使用他们的 params 数据集传递对一段数据的特定引用。

在我的示例中,我需要使用 params.value 来访问我需要的数据。我的系列数据集还包括数组中的 xy 列,因此我只需要引用其中一列即可使标签正常工作。

params 在 ECharts 文档中有详细说明,但是在系列类型部分,并不清楚(至少对我而言)如何使用它。

这是我的工作函数的简化版本:

formatter: function(params){
   let label = params.value[1] // this is my y column
   return label.toLocaleString()
}