0

これは非常に簡単です。これは、 Google チャート プレイグラウンドの円グラフの例に基づいています。

なぜこれがうまくいくのか誰にも教えてもらえますか:

function drawVisualization() {
  // Create and populate the data table.
  var data = google.visualization.arrayToDataTable([
    ['Task', 'Hours per Day'],
    ['Work', 4],
    ['Eat', {'v':0.,'f':'text 2'}],
    ['Commute', {'v':2,'f':'text 3'}],
    ['Watch TV', {'v':2,'f':'text 4'}],
    ['Sleep', {'v':0.,'f':'text 5'}]
  ]);

  // Create and draw the visualization.
  new google.visualization.PieChart(document.getElementById('visualization')).
      draw(data, {title:"So, how was your day?"});
}

しかし、これはそうではありません (「Work」行にリテラル文字列を追加しました):

function drawVisualization() {
  // Create and populate the data table.
  var data = google.visualization.arrayToDataTable([
    ['Task', 'Hours per Day'],
    ['Work', {'v':4,'f':'text 1'}],
    ['Eat', {'v':0.,'f':'text 2'}],
    ['Commute', {'v':2,'f':'text 3'}],
    ['Watch TV', {'v':2,'f':'text 4'}],
    ['Sleep', {'v':0.,'f':'text 5'}]
  ]);

  // Create and draw the visualization.
  new google.visualization.PieChart(document.getElementById('visualization')).
      draw(data, {title:"So, how was your day?"});
}

これは遊び場では機能せず、自分のサイトでも機能しません。ただし、自分のサイトで実行すると、次の firebug javascript エラーが発生します。

エラー: 0,1 の値が無効です (https://www.google.com/uds/api/visualization/1.0/351cbc565e06280bb093b00ce39323d9/format+en_GB,default,corechart.I.js )

事前に感謝します。おそらく、本当に明白な何かが欠けています

4

1 に答える 1

2

この問題を解決しました。別のフォーラムから次の回答を得て、回避策を使用しました。

これは、arrayToDataTable メソッドが {v: value, f: "formatted value"} オブジェクトの使用をサポートしていないためです。このメソッドは、データの最初の行から列の型を導出し、オブジェクト エントリを処理するように記述されていないと推定しました。後続の行は addRows メソッド (またはそれに類するもの) を介して追加される可能性が高いため、オブジェクト エントリはそこで機能します。そのようなデータを入力したい場合は、DataTable 列を明示的に定義してから addRows メソッドを使用する必要があります。

回避策は、偽のエントリを作成し、次のように値を 0 に設定することです。

function drawVisualization() {
  // Create and populate the data table.
  var data = google.visualization.arrayToDataTable([
    ['Task', 'Hours per Day'],
    ['Bogus',0],
    ['Work', {'v':4,'f':'text 1'}],
    ['Eat', {'v':0.,'f':'text 2'}],
    ['Commute', {'v':2,'f':'text 3'}],
    ['Watch TV', {'v':2,'f':'text 4'}],
    ['Sleep', {'v':0.,'f':'text 5'}]
  ]);

  // Create and draw the visualization.
  new google.visualization.PieChart(document.getElementById('visualization')).
      draw(data, {title:"So, how was your day?"});
}
于 2012-11-12T13:10:08.073 に答える