我试图在价格历史图表的工具提示中显示额外的数据(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并尝试执行类似this.MyExtraData的操作 并且再次失败
如果有人有可行的解决方案,请帮助我, 谢谢。
我已经尝试更改为对象数组并调用该名称,但没有使用succses! 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'
}]
});
});
答案 0 :(得分:1)
您可以稍微不同地定义您的积分:
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)中工作。
答案 1 :(得分:0)
尝试将this.points[0].point.extra;
替换为this.points[0].point.options.extra;
第二个解决方案是使用tooltip formatter来提取此字段。