2017-04-13 3 views
1

私のアプローチは、特定のツールチップ形式でチャートを設定されていますハイチャートchart.tooltip.formatterはseries.tooltip.pointFormatterをオーバーライドしますか?

Highcharts.chart('container', { 
    tooltip: { 
      formatter: function() { return 'Default Format ...'; } 
    }, 
    ... 
} 

...と、特定のシリーズのために、私はmodyfiedフォーマッタを指定する必要があります。

series: [{ 
    data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], 
    tooltip: { 
     pointFormatter: function() { return 'Custom Format...'; } 
    } 
    }, 
    ... 
] 

だから、これは動作しません。なぜなら、わかったように、chart-tooltip-formatterは、常にシリーズ構成のpointFormatterをオーバーライドするからです。チャートのツールチップ設定をコメントアウトすると、これを試すことができます。here

チャート全体の「フォーマッタ」機能に対する「デフォルト」のツールヒント設定と、特定のシリーズに対してこれを上書きする可能性を期待しています。そうする方法はありますか?

私はthisのようないくつかのアプローチを見つけましたが、フォーマッタ関数内にif-elseingシリーズ名よりも一般的なapporachが必要です。私はまた、値を変更できるようにしたいので、 'valueSuffix'のような属性は私を非常に遠くにしません。

答えて

2

このオーバーライドの仕組みはわかりませんが、tooltip.formatterが優先されます。 tooltip.formatterを使用する代わりに、同じ機能をplotOptions.series.tooltip.pointFormatterに移動してください。これは、期待通りに動作するはずです。plotOptionspointFormatterが一般的に使用されており、特定の場合にseriespointFormatterが使用されています。例えば

JSFiddle):

plotOptions: { 
    series: { 
     tooltip: { 
      pointFormatter: function() { return 'Default ' + this.x + '</b> is <b>' + this.y + '</b>'; } 
     } 
    } 
}, 

series: [{ 
    data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], 
    tooltip: { 
     pointFormatter: function() { return 'Custom Format...'; } 
    } 
}] 
関連する問題