-2

次のような正と負の値を持つ Highcharts 縦棒グラフの YAxis 値をゼロに中央揃えしたい: https://drive.google.com/open?id=0B_IZwAPijvleZzBhUnVaSFhBcDQ、これらの軸の値は動的に読み込まれます。jqPlot には、私の要件を満たすことができる軸設定で forceTickAt0 というオプションがあります。これが Highcharts で可能かどうかを知りたいのですが、可能であればどうすればよいですか? ありがとう。

更新: わかりました、私の質問を明確に説明するために、jsFiddleを作成しました。グラフでわかるように、y 軸の最大/最小系列値は 5001/-4280 ですが、Highcharts は y 軸の境界で 15000/-5000 を示しており、私はそれが 6000/-5000 であると予想しています。 y 軸シリーズの最初の値 5001 では、Highcharts は y 軸の境界で 5000/-5000 を示します。これは私が期待したものです。そのため、y 軸の系列に 5001 の値を追加すると、y 軸の境界が遠くなりすぎます。

重要な点は、y 軸の最大/最小の系列値がチャートの最大/最小境界値から離れすぎないようにすることです。

以下はコードです。説明のために、ここのシリーズデータは固定値を使用しています。実際の状況では、それらはすべて動的にロードされます。

$(function() {
   $('#container').highcharts({
     chart: {
       zoomType: 'xy',
       plotBackgroundColor: '#fffdf6',
       alignTicks: true,
     },
     title: {
       text: 'Country Illegally Building Num Average Tax',
     },
     subtitle: {
       text: ''
     },
     xAxis: [{
       categories: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N'],
       crosshair: true,
       title: {
         text: 'Country Code',
       }
     }],
     yAxis: [{ // Primary yAxis
       labels: {
         format: '{value} ',
       },
       title: {
         text: 'Illegally Building Num',
       },

     }, { // Secondary yAxis
       min: 0, //Required to start at zero
       title: {
         text: 'Average Tax ($)',
         style: {
           color: '#666'
         }
       },
       labels: {
         format: '{value} $',
         style: {
           color: '#666'
         }
       },
       opposite: true
     }],
     tooltip: {
       shared: true
     },
     legend: {
       enabled: false
     },
     series: [{
       color: 'red',
       negativeColor: 'green',
       name: 'Illegally Building Num',
       type: 'column',
       data: [5001, 369, 475, 891, 3585, 4235, -1711, -3648, -3749, -2555, -4280, -1017, 2001, -900],
       tooltip: {
         valueSuffix: ' '
       }
     }, {
       name: 'Average Tax',
       type: 'line',
       data: [140.5, 141, 139.5, 162, 151, 142, 147, 151, 154, 142, 146, 149, 153, 111.5],
       yAxis: 1,
       tooltip: {
         valueSuffix: ' $'
       }
     }]
   });
});
4

1 に答える 1

1

forceiTickAt0 があるとは思いませんが、この機能は、y 軸の最小/最大を設定することで簡単に実現できます。例えば:

yAxis: {
            min:-20,
            max:20,
            title: {
                text: 'Axis Title'
            },
            labels: {
                formatter: function () {
                    return this.value + '°';
                }
            },
            lineWidth: 2
        },

これは 0 に中心点を持ち、データに応じて、最大値を最小値の絶対値に動的に設定できます。

于 2016-04-07T02:14:49.997 に答える