是否可以对高级图表工具提示使用两种不同的格式化程序?



我有一个高图表表,其中包含两个使用命名值的数据系列。在一个系列的工具提示中,我想引用该系列中的一个数据点。所以这个答案中的解决方案是:如何在同一图形的每条曲线的高图表上使用不同的格式化程序?对我没有帮助。我需要的不仅仅是工具提示文本,我需要一个格式化程序:

首先:

formatter: function() {
return this.x + ': ' + this.series.name +
'<br> $' + Highcharts.numberFormat(this.y, 0);
}

对于另一个:

formatter: function() {
return 'In ' + this.x + ' the median value was' + this.median + 
'and the total $' + Highcharts.numberFormat(this.y, 0);                        
}

内部格式化程序this引用焦点系列,您可以在格式化程序内部添加一个if/else,并为每个格式化程序返回一个字符串,如下所示。

tooltip: {
shared: false,
formatter: function() {
var text = '';
if(this.series.name == 'MSFT') {
text = this.x + ': ' + this.series.name +
'<br> $' + Highcharts.numberFormat(this.y, 0);
} else {
text = 'In ' + this.x + ' the median value was' + this.median +
'and the total $' + Highcharts.numberFormat(this.y, 0);
}
return text;
}
}

演示

您可以为每个系列轻松定义一个 toolip 格式化程序 - 请参阅此处:http://api.highcharts.com/highcharts/plotOptions.series.tooltip

{
tooltip: {
shared: true
},
series: {
name: 'some series name',
data: mydata,
tooltip: {
valueSuffix: ' bar'
}
}
}

示例:http://jsfiddle.net/28qzg5gq/

下面是一个示例。小提琴示例在这里:

tooltip: {
formatter: function () {
var s = '<b>' + Highcharts.dateFormat('%A, %b %e, %Y', this.x) + '</b>';
$.each(this.points, function () {
s += '<br/>1 USD = ' + this.y + ' EUR';
});
return s;
}
},

最新更新