31

ページに一連のハイチャートを出力しています。場合によっては、指定された期間のすべてのデータが 0 の値で返されることがあります。

このような場合、チャートは次のようになります: http://jsfiddle.net/charliegriefer/KM2Jx/1/

y 軸のラベルは 0 だけで、グラフの中央にあります。

y 軸の 0 の値をグラフの下部に強制的に配置したいと思います。これにより、データがあるページ上の他のグラフと一致します。

「min: 0」、「minPadding: 0」、「maxPadding: 0」、「startOnTick: true」など、さまざまな yAxis プロパティを試しました。

それはかなり簡単なはずですが、私は途方に暮れています:(

関連する yAxis コード:

yAxis: {
    min: 0, 
    minPadding: 0, 
    startOnTick: true, 
    title: {
        text: ""
    }
},
4

8 に答える 8

42

私は別の(そして非常に単純な)解決策を見つけました:

y 軸のminRangeプロパティを設定できます。

yAxis: {
    ...
    minRange : 0.1
}

これにより、Highcharts は、すべてのデータが 0 の場合に yAxis の最小値と最大値をレンダリングします。

アップデート:

Highcharts 4.1.9 の修正には以下も必要です。

        plotOptions: {
            line: {
                softThreshold: false
            }
        }

更新されたjsフィドル

于 2014-04-23T11:51:53.353 に答える
14

「正しく」表示する唯一の方法は、yAxismax値も提供することでした。y値を持つデータ要素を提供しない場合、これはHighChartsの問題だと思います。できると思う最高のチャートを描画します。

于 2012-12-21T16:51:35.403 に答える
5

これを HighCharts フォーラムにも投稿したところ、機能しているように見える応答がありました。残念ながら、すべての「0」データ値をチェックするために、グラフをレンダリングする前にデータの前処理を行う必要がありますが、うまくいきます。HighCharts にもっと「組み込み」のものがあればいいのにと思います。

したがって、「y」値を合計した後、0 を取得した場合、y 軸のプロパティは次のようになります。

yAxis: {
    minPadding: 0, 
    maxPadding: 0,         
    min: 0, 
    max:1,
    showLastLabel:false,
    tickInterval:1,
    title: {
            text: ""
    }
}

参照: http://jsfiddle.net/KM2Jx/2/

キーは「max」および「showLastLabel」プロパティのようです。

于 2012-12-21T17:36:41.917 に答える
3

Highcharts 5.0.1 以降では、softMax も使用できます。

softMax: Number
軸のソフト最大値。シリーズ データの最大値がこれよりも大きい場合、軸はこの最大値のままになりますが、シリーズ データの最大値がこれよりも大きい場合、軸はすべてのデータを表示するように変化します。

yAxis: {
    min: 0,
    softMax: 100,
    ...
}

縦棒グラフの例を次に示します: http://jsfiddle.net/84LLsepj/

現在、Highcharts 5.0.7 では、すべてのタイプのチャートで機能していないように見えることに注意してください。この他の jsfiddleでわかるように、折れ線グラフでは機能しません。

于 2017-03-01T10:33:34.140 に答える
0

「最小」オプションを追加するだけです

yAxis: {
   min: 0
}
于 2014-06-02T09:06:50.777 に答える