如何在HighCharts地图悬浮提示中将数值格式化为$美元货币格式
Highcharts Maps 悬浮提示美元格式配置方案
Highcharts 默认的悬浮提示(tooltip)不会自动将数值格式化为货币样式,直接补充对应配置即可实现带$符号、千分位分隔、保留两位小数的美元展示效果,两种常用实现方式如下:
- 方案1:固定格式串配置(最简便,无特殊逻辑优先用)
直接在配置中新增和series平级的tooltip项,通过内置格式符指定数值展示规则,修改后完整核心配置如下:
tooltip: { pointFormat: '{series.name}: <b>${point.value:,.2f}</b><br/>' }, series: [ { type: 'map', name: 'Orders $', states: { hover: { color: '#BADA55', }, }, dataLabels: { enabled: true, format: '{point.name}', }, allAreas: true, data: this.model, }, ],
格式符:,.2f代表数字按千分位逗号分隔、保留2位小数,拼接前置$符号后,最终展示效果为Orders $: $12,345.67这类标准美元格式。如果只想对当前地图系列生效,也可以把tooltip配置挪到对应series的配置项内部,优先级高于全局tooltip配置。
- 方案2:自定义格式化函数(适配复杂逻辑)
如果需要处理空值、0值特殊展示、额外字段拼接等自定义逻辑,可以用pointFormatter代替固定格式串,示例如下:
tooltip: { pointFormatter: function() { // 空值展示N/A,非空值格式化为美元格式 const amount = this.value ? `$${Highcharts.numberFormat(this.value, 2, '.', ',')}` : 'N/A'; return `<b>${this.name}</b><br/>${this.series.name}: ${amount}`; } }
注意:如果你的数据源中存储金额的字段不是Highcharts默认识别的
value字段,将上述代码中的point.value/this.value替换为你实际使用的字段名即可(比如字段名为amount就对应修改为point.amount/this.amount)。
内容的提问来源于stack exchange,提问作者Ian Vink
相关产品推荐
相关产品推荐

