【问题标题】:Can't display extra tooltip data in price history chart无法在价格历史图表中显示额外的工具提示数据
【发布时间】:2014-09-22 13:27:25
【问题描述】:

我试图在价格历史图表的工具提示中显示额外的数据 (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 = [[date, price, 'some extra data1'],[date, price, 'some extra data2' ],[date, price, '一些额外数据3']];

我尝试使用 tooltip formatter 函数返回额外的字符串,但没有成功访问该字符串。 我试过了:

this.z,this.point[2]

也没有成功 我尝试将数组转换为 JSON 并尝试执行类似 this.MyExtraData 然后再次失败了

如果有人有可行的解决方案,请帮助我, 谢谢。

我已经尝试更改为对象数组并调用名称但没有成功! 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'
        }]
      });
});

【问题讨论】:

    标签: javascript jquery highcharts highstock


    【解决方案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) 中工作。

    【讨论】:

    • 我不想切换到 highcharts,这是历史价格表.. highstock 完美显示
    • 这对我来说似乎是一个错误。 highstock 文档表明 this.point.name 应该可以正常工作。
    【解决方案2】:

    尝试将this.points[0].point.extra; 替换为this.points[0].point.options.extra; 第二种解决方案是使用tooltip formatter 提取此字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多