4

ズームインの程度に応じて解像度が変化するグラフを作成しようとしています。完全にズームアウトすると、次のようになります。

代替テキスト これは見栄えが良いので、ズームインすると、より高い解像度のデータが得られ、グラフは次のようになります。

代替テキスト 問題は、高解像度のデータをズームアウトしてもグラフから消去されないことです。 代替テキスト

グラフの下の表は、DataTable の内容を表に示したものです。これは、描画コードがどのように見えるかです。

var g_graph = new google.visualization.AnnotatedTimeLine(document.getElementById('graph_div_json'));
var table = new google.visualization.Table(document.getElementById('table_div_json'));
function handleQueryResponse(response){
    log("Drawing graph")
    var data = response.getDataTable()
    g_graph.draw(data, {allowRedraw:true, thickness:2, fill:50, scaleType:'maximized'})
    table.draw(data, {allowRedraw:true})
}

DataTable にあるデータのみを表示する方法を見つけようとしています。allowRedraw フラグを削除しようとしましたが、ズーム操作が中断されます。

どんな助けでも大歓迎です。

ありがとう

こちらもご覧ください

4

2 に答える 2

0

ズームのレベルに応じて、n番目ごとのデータポイントを描画するのが最善の解決策のように思われます。Google Financeのグラフでは、ズームレベルは上部で事前に決定されています:1m、5m、1h、1日、5日など。これはまさにGoogleが行っていることのようです。最大ビューレベルでは、その月に該当するポイントをプロットしています。1日に1000回ポーリングしている場合(各ポーリングで1つのポイントが生成されます)、30,000ポイントごとに取得します(最初のポイントは月の最初のポイントで、30,000番目のポイントは最後のポイントです)。点)。

これらのズームレベルのそれぞれは、データポイントの異なるプロットを実装します。各ポイントには、秒単位の精度のタイムスタンプが必要です。これにより、詳細レベルに基づいてプロットを簡単にスケーリングできます。

于 2013-02-04T16:51:43.570 に答える
0

allow redraw フラグを削除できます。その場合、データ ポイントを手動でデータ テーブルに配置する必要があります。

  1. 実際の全体データの最新の日付
  2. 実際のデータ全体で最も古い日付。

これにより、ズーム操作が保持されます。allowRedraw フラグの削除を既に見たことがあると思いますが、機能しますが、小さな問題があり、チャート全体がちらつきます。

于 2010-11-22T19:16:56.197 に答える