web-dev-qa-db-ja.com

Highstock Highchartsの不規則なデータが間違ったXスケールになる

不規則なデータがあります。 highchartsを使用すると、グラフがうまく描画されます:

$(function() {
  var chart = new Highcharts.Chart({
    chart: {
      renderTo: 'chart'
  },
  xAxis: {
    type: 'datetime'
  },
  series: [{
    name: 'Volume',
    data: chart_arr,
  }]
});
});

http://jsfiddle.net/KnTaw/9/

しかし、私は大量のデータを持っているので、日付を拡大してhighstockを選択する必要があります。次に、奇妙なことが起こります。x軸が非線形になります。

$(function() {
  var chart2 = new Highcharts.StockChart({
    chart: {
      renderTo: 'chart2'
    },
    rangeSelector: {
      selected: 0
    },
    xAxis: {
      type: 'datetime'
    },
    series: [{
      name: 'val',
      data: chart_arr,
      type : 'area',
    }]
  });
});

http://jsfiddle.net/Mc3mW/1/

1月6日20:00〜20:30の30分範囲のデータは、1月11〜13日の2日間よりも多くのスペースを割り当てます。 (もちろんデータは同じです。)

ハイストックでx軸を強制的に線形にするにはどうすればよいですか?または、どうすればハイチャートの下部ズームツールを有効にできますか?ありがとうございました。

36
Putnik

xAxis.ordinalプロパティをfalseに設定します。これはデフォルトでtrueです。 True値は、ポイントを一定の間隔で配置する必要があることを示しますwrtspace(pixels)、およびFalseはポイントを一定の間隔で配置する時間

xAxis: {       
    ordinal: false
}

線形X軸| Highstock @ jsFiddle

59
Jugal Thakkar

HighCharts JavaScriptライブラリを使用してチャートをズームできます。設定する必要があるプロパティはzoomTypeです。

ユーザーがマウスをドラッグしてズームできる寸法を決定します。 x、y、xyのいずれかです。デフォルトは ""です。

ここでは、例 here を確認できます。特定の場所をズームするには、マウスの左ボタンを押したまま、ズームしたい領域を選択します。

HTMLコード:

<div id="container" style="height: 400px"></div>​

JavaScriptコード:

$(function () {
    var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            type: 'line',
            zoomType: 'x'
        },
        
        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },
        
        series: [{
            data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]        
        }]
    });
});​

また、ズームイベント時に[ズームをリセット]ボタンが自動的に表示され、グラフが押されたときに表示される部分を簡単に操作できます。

とにかく、ズーム設定、イベント、ボタンの詳細と例については、「Highchartsオプションリファレンス」を参照してください here 。検索に「ズーム」と入力するだけです。

あなたの他の質問に関して:HighStock APIによると、「StockChartを線形にする方法」は、チャートのデフォルトのタイプは線形です。ここで発生しているのは、シリーズプロパティで設定したareaオプションが原因です。このように削除するだけで、線形グラフが表示されます。

$(function() {
  var chart2 = new Highcharts.StockChart({
    chart: {
      renderTo: 'chart2'
    },
    rangeSelector: {
      selected: 0
    },
    xAxis: {
      type: 'datetime'
    },
    series: [{
      name: 'val',
      data: chart_arr
    }]
  });
});
0
gotqn