5

ハイチャートの折れ線グラフに大きな数字であるポイントをいくつか表示したいと思います。

例: 100,000、10,000,000、1,000,000,000

これらを表示すると、y 軸は自動的に数値を 100 k、10 M、1,000 M などにフォーマットしますが、ツールチップには実際の大きな数値が表示されます。

ツールチップ自体で 1,000,000,000 を 1 B または 1000 M として表示することは可能ですか。

例 - http://jsfiddle.net/ynCKW/1/

numberFormat 関数をいじろうとしていますが、正しい関数だとは思いません。

Highcharts.numberFormat(this.y,0)

ツールチップでこの書式設定を行うカスタム関数を作成する必要がありますか?

4

2 に答える 2

5

Highcharts コアに実装されているものと同じロジックを使用できます。

    tooltip: {
        formatter: function () {
            var ret = '',
                multi,
                axis = this.series.yAxis,
                numericSymbols = ['k', 'M', 'G', 'T', 'P', 'E'],
                i = numericSymbols.length;
            while (i-- && ret === '') {
                multi = Math.pow(1000, i + 1);
                if (axis.tickInterval >= multi && numericSymbols[i] !== null) {
                    ret = Highcharts.numberFormat(this.y / multi, -1) + numericSymbols[i];
                }
            }
            return ret;
        }
    },

および jsFiddle: http://jsfiddle.net/ynCKW/2/

ハイチャートv6の編集:

組み込みメソッドを呼び出すことができます。これは、保守が容易なはずです: http://jsfiddle.net/BlackLabel/ynCKW/104/

    tooltip: {
        valueSuffix: '',
        formatter: function () {
            var axis = this.series.yAxis;

            return axis.defaultLabelFormatter.call({
                axis: axis,
                value: this.y
            });
        }
    },
于 2013-04-29T11:26:17.817 に答える
2

@Pawel Fusに便乗して、わずかな微調整により、の通貨値も持つことができますが、負の値は外側$(つまり-$100K-$-100k)で使用できます。

function () {
    var isNegative = this.value < 0 ? '-' : '';
    var absValue = Math.abs(this.value);
    return isNegative + '$' + this.axis.defaultLabelFormatter.call({
        axis: this.axis,
        value: absValue
    });
}

ここに jsFiddle があります: http://jsfiddle.net/4yuo9mww/1/

于 2016-07-26T16:55:18.723 に答える