1分間隔の時系列があります。欠損値を0としてチャートに表示したいと思います。
xAxis.ordinal を見つけてオフにすると、時系列が適切に間隔をあけて表示されます。問題は、欠落しているデータを 0 にすることなく、ポイント間に直接線を引くことです。
1分間隔の時系列があります。欠損値を0としてチャートに表示したいと思います。
xAxis.ordinal を見つけてオフにすると、時系列が適切に間隔をあけて表示されます。問題は、欠落しているデータを 0 にすることなく、ポイント間に直接線を引くことです。
HighChartsのAPIリファレンスを徹底的に検索しましたが、そのオプションは提供されていません。彼らが提供するのは、データが間にあるときにポイントの接続を無効にするオプションですnull
(折れ線グラフと面グラフのみ)。
var chart = new Highcharts.Chart({
plotOptions: {
line: {
connectNulls: false
}
}
});
null
これはAPIによるデフォルト設定であるため、データがその間の値で接続される理由がわかりません。たぶん彼らは最近デフォルトを変更しましたか?
デフォルトでは誤解を招くようnull
に0
思われるため、これはデータの適切な表現だと思います。
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/
欠落したデータを 0 として埋める必要があります。ハイチャートは xAxis 間隔を認識しないためです。
1分間隔の時系列がある場合は、不足しているすべての分のデータを 0 に設定する必要があります。1日間隔の時系列がある場合は、欠落しているすべての日のデータを 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);
}