49

1分間隔の時系列があります。欠損値を0としてチャートに表示したいと思います。

xAxis.ordinal を見つけてオフにすると、時系列が適切に間隔をあけて表示されます。問題は、欠落しているデータを 0 にすることなく、ポイント間に直接線を引くことです。

4

4 に答える 4

5

HighChartsのAPIリファレンスを徹底的に検索しましたが、そのオプションは提供されていません。彼らが提供するのは、データが間にあるときにポイントの接続を無効にするオプションですnull(折れ線グラフと面グラフのみ)。

var chart = new Highcharts.Chart({
    plotOptions: {
        line: {
            connectNulls: false
        }
    }
});

nullこれはAPIによるデフォルト設定であるため、データがその間の値で接続される理由がわかりません。たぶん彼らは最近デフォルトを変更しましたか?

データが欠落しているHighChartの例

デフォルトでは誤解を招くようnull0思われるため、これはデータの適切な表現だと思います。

于 2013-03-19T09:18:42.883 に答える
5

1 つの方法は、次のように置き換えnullて、データを前処理すること0です。

var withNulls = [null, 12, 23, 45, 3.44, null, 0];
var noNulls = withNulls.map(function (item) {
    return (item === null) ? 0 : item;
});

jsfiddle に保存された例: http://jsfiddle.net/7mhMP/

于 2012-05-02T07:30:11.040 に答える
1

欠落したデータを 0 として埋める必要があります。ハイチャートは xAxis 間隔を認識しないためです。

1分間隔の時系列がある場合は、不足しているすべての分のデータを 0 に設定する必要があります。1日間隔の時系列がある場合は、欠落しているすべての日のデータを 0 に設定する必要があります。

于 2014-10-20T15:08:57.640 に答える
0

私は同じ問題を抱えており、データベースのデータ構造を VARCHAR として設定し、デフォルト値を null に設定して、データがない場合は NULL にする必要があることを理解しています。次に、ヌル値を受け入れ、ハイチャートは表示されず、欠落している領域をnull値と接続します。
さらに、データを として受け取る必要がNULLあり、それらを に変更しないでください''
この実例を参照してください。

var chart = new Highcharts.Chart({

    chart: {
        defaultSeriesType: 'spline', // use line or spline
        renderTo: 'container1'
    },

    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },

    series: [{
        data: [9, 4,null, 2, 1, 0, 6, 5, 4, 1, 6, 4]
    }]

});

これnullは、 と を使用した 2 つの異なるチャートのフィドルです。''

更新:
parseINT を使用してデータをプッシュしている場合は、覚えておく必要がありparseINT(NULL)ます。NANこのバグのために、次のような方法で NULL を手動でプッシュしてみてください。

var val = parseInt(rows[i]);
if (isNaN(val))
{
  val = null;
  result.push(val);
}
于 2013-07-28T08:54:38.310 に答える