2012-05-10 62 views
5

在以下示例中,如何格式化系列和標誌的工具提示?系列和標誌的Highchart /股票工具提示格式化程序

http://jsfiddle.net/gh/get/jquery/1.7.1/highslide-software/highcharts.com/tree/master/samples/stock/plotoptions/flags/

我想表明在一系列工具提示和標誌提示其他數據的額外信息。

+0

不表示標誌系列工具提示已經在HighStock的錯誤數年(與迴歸),它被[固定在2017年七月](HTTPS:// github上.COM/highcharts/highcharts /問題/ 6941)。還要注意,因爲現在是2017年,所以您應該更新您的小提琴代碼以將'rangeSelector.selected'設置爲5,以便標記可見。 –

回答

8

一種方法是創建一個工具提示格式程序,檢查當前對象是否是一個點。

tooltip: { 
      formatter: function(){ 
       if(this.point) { 
        return "this is a flag" 
       } 
       else { 
        return "this is a line" 
       } 
      }     
     } 

你可以走一步,給您的標誌名稱,然後檢查點有一個名字(而不是如果它只是存在的),以防止非標誌點從得到相同的格式。

這裏就是你們的榜樣修改,以反映前http://jsfiddle.net/aTcFe/

11

使用下面的函數作爲工具提示格式化 -

tooltip: { 
    shared:true, 
formatter: function(){ 
     var p = ''; 
     console.log(this); 

     if(this.point) { 
      p += '<b>'+ Highcharts.dateFormat('%A, %b %e, %Y', this.point.x) +'</b><br/>'; 
      p += this.point.config.text // This will add the text on the flags 
     } 
     else {    
      p += '<b>'+ Highcharts.dateFormat('%A, %b %e, %Y', this.x) +'</b><br/>'; 
      $.each(this.points, function(i, series){ 
      p += '<span style="color:' + this.series.color + '">' + this.series.name + '</span>: <b>'+ this.y + ' kWh ($' + Highcharts.numberFormat(this.y * rate, 0) + ')</b><br/>'; 
      }); 

     } 
     return p; 
     }} 

也請參閱本的jsfiddle:http://jsfiddle.net/aTcFe/

+0

這應該被標記爲最合適的答案 – Maxx

+0

不錯的可拖動時間軸比例,會借我的項目:) – kite

1

隨着Highstock 2.1.7你總是得到一個this.point對象,所以你應該使用this.series.type === 'flags'來檢測標誌是否存在。

一個例子是:

formatter: function() { 
    if (this.series.type === 'flags') { 
      // Flags formatting 
    } 
    else { 
      // Default formatting 
    } 
} 
+0

你能舉個例子嗎? – squidbe

+1

完成 - 我希望這已經夠清楚了。 –

+1

我無法得到這個工作。如果(this.series && this.series.options.type =='flags')''註銷'this',我最終不得不做了測試 ''if – ragefuljoe