我试图在价格历史图表(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)中工作。

10-08 00:21