2016-06-16 8 views

答えて

3

ChartWrapperオブジェクトをお持ちの場合は、公式ドキュメントChartWrapper Classに記載されているgetOptions()メソッドを使用できます。

いつでもChartWrapperを使用することができれば、あなたはチャートデータとオプションを操作するためのヘルパーをたくさん提供します。 Hereが、これはドキュメントから

UPDATE

小さなサンプルが実際に私はあなたがおそらく何か他のものを必要とし、toJSON()メソッドは

優れていることをことを考え出したのに役立ちます公式ドキュメント

希望です

<html> 
    <head> 
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
    <script type="text/javascript"> 
     google.charts.load('current'); // Don't need to specify chart libraries! 
     google.charts.setOnLoadCallback(drawVisualization); 

     function drawVisualization() { 
     var wrapper = new google.visualization.ChartWrapper({ 
      chartType: 'ColumnChart', 
      dataTable: [['', 'Germany', 'USA', 'Brazil', 'Canada', 'France', 'RU'], 
         ['', 700, 300, 400, 500, 600, 800]], 
      options: {'title': 'Countries'}, 
      containerId: 'vis_div' 
     }); 
     wrapper.draw(); 
     console.log(wrapper.toJSON()); 

     } 
    </script> 
    </head> 
    <body style="font-family: Arial;border: 0 none;"> 

    <div id="vis_div" style="width: 600px; height: 400px;"></div> 
    </body> 
</html> 

ご覧のとおり、メソッドを呼び出すconsole.logを追加しました。

あなたはより多くの実験に

UPDATE 2 を行う必要がある場合、私は問題が少し遅い理解よ:)

ので、あなたが2つ目のグラフを持っている必要がある場合は、このfiddleでarroundの再生することができます最初のラッパーでclone(clone()メソッドがあります)を最初のラッパーにコピーし、変更する必要がある属性を変更することです。

前のコードから、drawVisualization )メソッドとクローニングのためにそれを更新します。

function drawVisualization() { 
    var wrapper = new google.visualization.ChartWrapper({ 
     chartType: 'ColumnChart', 
     dataTable: [['', 'Germany', 'USA', 'Brazil', 'Canada', 'France', 'RU'], 
        ['', 700, 300, 400, 500, 600, 800]], 
     options: {'title': 'Countries'}, 
     containerId: 'chart_div' 
    }); 
    wrapper.draw(); 
    console.log(wrapper.toJSON()); 
    //hre you clone the wrapper 
    wrapperCLone = wrapper.clone(); 
    console.log(wrapperCLone); 
    //now you can change the data and some option and draw a new one 
    wrapperCLone.setContainerId("second_chart_div"); 
    wrapperCLone.setDataTable([['', 'Germany', 'USA', 'Brazil', 'Canada', 'France', 'RU'], 
        ['', 1700, 1300, 1400, 1500, 1600, 1800]]); 
    wrapperCLone.draw(); 

    } 

あなたは私たちが新しいオブジェクトwrapperCLoneでラッパーのクローンを作成し、我々は新しいコンテナIDとのdataTableを設定するよりも、見ることができるように。

ラッパーのすべての単一の属性を変更することができます。私はchartWrapperクラスについてリンクした最初のガイドでメソッドを見つけることができます。

fiddleも更新しました.1番目のグラフが表示され、下にある別のデータテーブルでも同じオプションのクローンが見つかりました。

お探しのものがこれです。がんばろう! :)

+1

ChartWrapperはおそらく、オプション、チャートタイプ、およびデータをまとめて保存する最も簡単な方法です。ラッパーのないグラフは、描画するたびに与えられたものと同じくらい、実際には「選択肢」を持っていません。 ChartWrapperは、描画ごとにオプションを渡す必要はありません。後でそれらを保持します。私は質問が本当に求めているのはjavascript変数のスコープに関するものだと思います。 – nbering

+0

@nberingここで再び会った:) – rick

+0

@rickありがとう。私はどこかに見たことが分かっていましたが、何処でどこを覚えていないのでしょうか。私はまだ初心者です。例ではgetOptions()メソッドを使用してください...ちょうど1行、ただ変数= getOptions ...構文を見ることができるようにしてください... –

関連する問題