无法在价格历史记录图表中显示额外的工具提示数据

时间:2014-09-22 13:27:26

标签: javascript jquery highcharts highstock

我试图在价格历史图表的工具提示中显示额外的数据(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'
        }]
      });
});

2 个答案:

答案 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来提取此字段。