2012-12-19 16 views
15

私は名前付きの値を使用する2つのデータ系列を持つハイチャートテーブルを持っています。あるシリーズの私のツールチップでは、シリーズからデータポイントを参照したいと思っています。したがって、この回答の解決策:How to use a different formatter on Highcharts in each curve of the same graphic?は私を助けません。ハイチャートのツールチップに2つの異なるフォーマッタを使用できますか?

1の場合:私はちょうどTOOLTIPTEXT以上のものを必要とする、私はフォーマッタ必要

formatter: function() { 
    return this.x + ': ' + this.series.name + 
    '<br> $' + Highcharts.numberFormat(this.y, 0); 
    } 

をそして他のために:

formatter: function() { 
    return 'In ' + this.x + ' the median value was' + this.median + 
    'and the total $' + Highcharts.numberFormat(this.y, 0);       
} 

答えて

28

フォーマッタインサイド集中セリエへthis reffers、あなたが追加することができますフォーマッタ内にif/elseを置き、それぞれの文字列を返します。次のようにします。

tooltip: { 
    shared: false, 
    formatter: function() { 
     var text = ''; 
     if(this.series.name == 'MSFT') { 
      text = this.x + ': ' + this.series.name + 
        '<br> $' + Highcharts.numberFormat(this.y, 0); 
     } else { 
      text = 'In ' + this.x + ' the median value was' + this.median + 
        'and the total $' + Highcharts.numberFormat(this.y, 0); 
     } 
     return text; 
    } 
} 

demo

+7

+1、ありがとう - しかし私の意見では'this.series.name'の代わりに' this.series.options.id'を使うのが良いでしょう。そうすれば、簡単に変更できるものに依存しません。シリーズを初期化するときにidを設定できます。 –

-1


は、ここでの例です。フィドル例はhereです:

tooltip: { 
      formatter: function() { 
       var s = '<b>' + Highcharts.dateFormat('%A, %b %e, %Y', this.x) + '</b>'; 

       $.each(this.points, function() { 
        s += '<br/>1 USD = ' + this.y + ' EUR'; 
       }); 

       return s; 
      } 
     }, 
3

あなたは簡単に各シリーズのtoolipフォーマッタを定義することができます - ここを参照してください:http://api.highcharts.com/highcharts/plotOptions.series.tooltip

{ 
    tooltip: { 
      shared: true 
    }, 
    series: { 
    name: 'some series name', 
    data: mydata, 
    tooltip: { 
     valueSuffix: ' bar' 
    } 
    } 
} 

例:http://jsfiddle.net/28qzg5gq/

+0

これはフォーマッタではなく、単なる接尾辞です。 1つのシリーズのみの設定オブジェクトにフォーマッタを追加するには、 'pointFormatter'関数を使用しなければなりません - [example](http://jsfiddle.net/28qzg5gq/12/)。 –

関連する問題