我试图在价格历史图表(stockChart)的工具提示中显示其他数据,
jsfiddle示例:
http://jsfiddle.net/z10dLcj8/1/
$(function(){
var priceHistoryObjArray = [
[1379883600000,47.19,'extra data'],
[1379970000000,48.45,'extra data1'],
[1380056400000,49.46,'extra data2'],
[1380142800000,50.39,'extra data3']
];
$('#container').highcharts('StockChart', {
tooltip:{
formatter: function(){
//how to return 'extra data'??
//return this.points[2]??
return this.y; //return price
}
},
series : [{
name : 'Price',
data : priceHistoryObjArray,
id: 'dataseries'
}]
});
});
我通过数组的图表数组看起来像这样:
var dataArray = [[日期,价格,'一些额外的数据1'],[日期,价格,'一些额外的数据2'],[日期,价格,'一些额外的数据3]]];
我尝试使用工具提示格式化程序功能返回额外的字符串,但未成功访问该字符串。
我试过了:
this.z,this.point [2]
也没有成功
我试图将数组转换为JSON并尝试做这样的事情。
再次失败
如果有人有可行的解决方案,请帮助我,
谢谢。
我已经尝试更改为对象数组并调用名称,但是没有成功!
http://jsfiddle.net/z10dLcj8/3/
function prepare(dataArray) {
return dataArray.map(function (item, index) {
return {x: item[0], y: item[1], extra: item[2]};
});
};
$(function(){
var priceHistoryObjArray = [
[1379883600000,47.19,'extra data'],
[1379970000000,48.45,'extra data1'],
[1380056400000,49.46,'extra data2'],
[1380142800000,50.39,'extra data3']
];
priceHistoryObjArray = prepare(priceHistoryObjArray);
$('#container').highcharts('StockChart', {
tooltip:{
formatter: function(){
//how to return 'extra data'??
this.points[0].point.extra;
}
},
series : [{
name : 'Price',
data : priceHistoryObjArray,
id: 'dataseries'
}]
});
});
最佳答案
您可以稍微不同地定义点:
var priceHistoryObjArray = [{
x: 1379883600000,
y: 47.19,
name: 'extra data'
},
然后参考:this.point.name http://jsfiddle.net/dz11ty8v/。
尽管我必须改用highcharts才能使其工作而不是highstock,尽管它应该在highstock(http://api.highcharts.com/highstock#tooltip.formatter)中工作。