現在、NVD3を使用していくつかの折れ線グラフを作成しています。 y軸の目盛りを常に0から開始することは可能かどうか疑問に思っています。現在、常に最小のy値から開始しています。 tickValuesを使用してみましたが、他の値を変更したくありません。また、値が0のデータポイントを追加しようとしましたが、これは回避策のようであり、グラフの外観に影響します。何か案は?
「ダミー」のデータポイントを追加する必要はありません。必要なのは、スケールの入力ドメインを調整することだけです。何かのようなもの
chart.yAxis.scale().domain([0, maxValue]);
ほとんどのグラフには、値の配列をとるforceX関数とforceY関数があります。次のように使用できます。
var chart = nv.models.lineChart();
chart.forceX([0, 10])
chart.forceY([-1, 1])
これにより、xAxisで常に少なくとも0と10が表示されますが、ドメインを直接操作してもドメインが制限されることはありません。それはあなたが次のようなことをする場合です:
chart.yAxis.scale().domain([0, maxValue]);
また、データには負のX値があり、指定されたドメインの外にあるためグラフには表示されませんが、forceXを使用すると表示されます。
Chart.forceX(0)で設定できるのは最小値のみです。
このテストページは、nvd3チャートのプロパティを把握するときに非常に役立つと思います(angular btw)を使用していない場合でも適用可能)
https://krispo.github.io/angular-nvd3/#/lineChart
forceY
の横にある+
記号をクリックします-5
のような値を入力し、それを追加してすぐに効果を確認します(サンプルグラフにはすでにゼロが表示されています)。