4

私はHighchart jsで多くのことを試みてきましたが、シリーズの要素の数を減らす方法をまだ見つけることができません.

15 日を超えるデータを取得した場合は、それを元に戻し、15 日分のデータとしてユーザーに表示して、ユーザーがデータを密集させることなくデータを表示できるようにする必要があります。シリーズでは最大 90 日が与えられますが、これを 15 日に短縮する必要があります。

ここで私の現在のコードをチェックしてくださいhttp://jsfiddle.net/MULZL/

誰でも解決策を教えてもらえますか?

PS: 最初の 15 日間または最後の 15 日間に減らしたくありません。チャートで90日を取得すると混雑しているように見え、ズーム機能を適用したくないという理由だけでやりたいです。15日を超える場合、一部のデータ(日)を無視して15日にする解決策が欲しい

4

2 に答える 2

0

highStock のdataGrouping機能を試すことができます

var dataGrouping = {
    groupPixelWidth: 40,
    units: [[
        'day',
        [1, 2, 3,4,5,6]
        ]]
};

ハイチャートは、すべての列が少なくとも指定された幅 (40) であることを確認します。列の数が多く、その幅を持つことができない場合、単位を使用してデータをグループ化するため、1 のデータをグループ化します。日を 1 列に、2 日を 1 列に、などです。本当に正確に15個のプロットが必要かどうかはわかりませんが、データの混雑を避けることを懸念していたと思います.これはまさにそれを行います.その倍数。データとグラフの幅に応じて値を微調整します。 jsフィドル

于 2012-09-10T14:46:53.713 に答える
0

Axis.setExtremesメソッドを使用して、必要な時間範囲にプログラムでズームできます。あなたの場合、ロード時にそれをしたいかもしれません

これを行う方法は次のとおりです。特定のデータの最初の 15 日間にズームインする場合は、過去 15 日間にズームインするように簡単に変更できます。

function zoomTo15Points(chart){
    var points=chart.series[0].points;
    if(points.length<15)   return;
    var min=points[0].x;    
    var max=points[14].x;
    // If you wish to zoom to 15 days and not 15 points, you can modify max as
    // var max=min + 1000*60*60*24*14
    chart.xAxis[0].setExtremes(min,max);    
    chart.showResetZoom();
}

ユーザーにズームアウトさせたくない場合は、最後の行を無効にすることができますが、ズームも無効にする必要があります。そうしないと、ユーザーが 15 日以内にズームするとボタンが表示されます。

ハイチャート ズーム オン ロード @ jsFiddle

于 2012-09-03T07:52:24.597 に答える