我使用tooltip.pointFormat
在工具提示中呈现其他数据。不幸的是,只有{千}分隔符才能正确格式化point.x
。
$(function () {
Highcharts.setOptions({
global: {
useUTC: false,
},
lang: {
decimalPoint: ',',
thousandsSep: '.'
}
});
$('#container').highcharts({
xAxis: {
type: 'datetime'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.y}</b><br/>' + 'Count: <b>{point.count}</b><br/>',
shared: true
},
series: [{
data: [{
y: 20009.9,
count: 20009.9
}, {
y: 10009.9,
count: 20009.9
}, {
y: 40009.9,
count: 20009.9
}],
pointStart: Date.UTC(2010, 0, 1),
pointInterval: 3600 * 1000 // one hour
}]
});
});
答案 0 :(得分:19)
找到答案here。
使用浮点格式约定的子集格式化数字 来自C库funciton sprintf。格式化附加在里面 变量括号,用冒号分隔。例如:
- 两位小数:“
{point.y:.2f}
”- 千位分隔符,无小数位:
{point.y:,.0f}
- 千位分隔符,小数点后一位:
{point.y:,.1f}
因此,在括号内使用:,.1f
将正确格式化数字。
tooltip: {
pointFormat: '{series.name}: <b>{point.y}</b><br/>' + 'Count: <b>{point.count:,.1f}</b><br/>',
shared: true
}
答案 1 :(得分:12)
使用tooltip formatter然后Highcharts.numberFormat
代替pointFormattooltip: {
formatter:function(){
return this.point.series.name + ': <b>' + Highcharts.numberFormat(this.point.options.count,1,',','.') + '</b><br/>' + 'Count: <b>'+Highcharts.numberFormat(this.point.y,1,',','.')+'</b><br/>';
}
},
答案 2 :(得分:3)
在我们的情况下tooltipFormatter
仅适用于y
属性的格式,我发现了一些方法,不仅可以为y
添加格式,
为每个工具提示和每个属性添加格式,例如point.count:,.f
pointFormat: '{series.name}: <b>{point.count:,.f}</b><br/>' + 'Count: <b>{point.y}</b><br/>',
像这样创建小扩展
(function (Highcharts) {
var tooltipFormatter = Highcharts.Point.prototype.tooltipFormatter;
Highcharts.Point.prototype.tooltipFormatter = function (pointFormat) {
var keys = this.options && Object.keys(this.options),
pointArrayMap = this.series.pointArrayMap,
tooltip;
if (keys.length) {
this.series.pointArrayMap = keys;
}
tooltip = tooltipFormatter.call(this, pointFormat);
this.series.pointArrayMap = pointArrayMap || ['y'];
return tooltip;
}
}(Highcharts));