2016-04-07 4 views
-2

Highcharts ColumnチャートのY軸の値を0に設定したい場合は、&のように負の値を返します。https://drive.google.com/open?id=0B_IZwAPijvleZzBhUnVaSFhBcDQ,これらの軸の値は動的に読み込まれます。 jqPlotには、私の要件を満たすことができる軸の設定でforceTickAt0というオプションがあります。 これはHighchartsで可能かどうかを知りたいのですが、どうすればいいですか?おかげさまで ハイチャートの中心yaxisの値が0であることを示します。

更新: [OK]を、明確に私の質問を説明するために、私はjsFiddleを作成しました。 チャートに見られるように、y軸の最大/最小値は5001/-4280ですが、ハイチャートは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: ' $' 
     } 
    }] 
    }); 
}); 
+0

1)min/maxは絶対値ではありません。 * tickInterval *と* minPadding */* maxPadding *と組み合わせて動作します。ほとんどの場合、記述されているようにmaxを設定すると、「フレンドリーな」maxが得られます。そうでない場合は、tickIntervalとmaxPaddingの値を調整して影響を与えることができます。 – jlbriggs

+0

最大/最小値は生データに非常に依存しますが、tickIntervalを調整するのは難しいです。y軸の値は大きな差が出るかもしれません(おそらく1,000,10,000,100,000、または1,000,000 ...など) –

+0

設定を試しましたか分と最大?それがあなたが望むように動作していない場合は、特定のフィドルを投稿してください。あなたはちょうどデータをプロットしようとしましたが、何か他のことをしていませんか?あなたが求めているのは、Highchartsの通常のデフォルト動作です。あなたが望むように動作しない場合は、必要に応じて動作していないことについてより具体的な詳細を記入してください。 – jlbriggs

答えて

1

私はforceiTickAt0があると信じていませんが、この機能は、簡単に、y軸の最小/最大を設定することによって達成することができます。例:

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

これは、中心点が0になり、データに応じて、maxを動的にminの絶対値に設定することができます。

+0

私の更新された質問、ありがとうございます。 –

関連する問題