有没有办法让谷歌图表附加到一个div?

时间:2016-07-22 20:19:06

标签: google-visualization

当用户点击按钮时,将创建一个图表..此代码只是克隆主图表。由于主图表发生变化,用户可以多次点击几个主图表。目前,当再次点击该按钮时,它将删除上一个图表。

单击按钮时,将调用getChart函数,并将原始图表克隆到试验div中。但由于原始图表可以更改,因此用户可以将多个克隆的不同类型的图表添加到试验div中?

 function getChart() {
      google.visualization.events.addListener(wrapper, 'ready', onReady);
          function onReady() {
            google.visualization.events.addListener(wrapper.getChart(), 'click');
          }
        var trialChart = wrapper.clone();
        trialChart.setContainerId('trial');
        trialChart.draw();
    }

1 个答案:

答案 0 :(得分:1)

这可能是你正在寻找的......

克隆被添加到试验 div,
而不是替换试验 div

中的图表

因此在按下克隆按钮时会保存每个图表



google.charts.load('current', {
  callback: function () {
    var data = new google.visualization.DataTable();
    data.addColumn('date', 'Date');
    data.addColumn('number', '2015');
    data.addColumn('number', '2016');
    data.addRows([
       [new Date('01/01/2016'), 200, 210],
       [new Date('01/02/2016'), 190, 220],
       [new Date('01/03/2016'), 205, 200],
       [new Date('01/04/2016'), 220, 230],
       [new Date('01/05/2016'), 212, 210],
       [new Date('01/06/2016'), 185, 193],
       [new Date('01/07/2016'), 196, 207]
    ]);

    var chart = new google.visualization.ChartWrapper({
      chartType: 'LineChart',
      containerId: 'chart_orig',
      dataTable: data,
      options: {
        height: 400
      }
    });

    google.visualization.events.addOneTimeListener(chart, 'ready', function () {
      document.getElementById('cloneBtn').addEventListener('click', function () {
        var trialChart = chart.clone();
        var chartDiv = document.getElementById('chart_trial').appendChild(document.createElement('DIV'));
        chartDiv.id = 'div-' + (new Date()).getTime();
        trialChart.setContainerId(chartDiv.id);
        trialChart.draw();
      }, false);
    });

    chart.draw();
  },
  packages: ['corechart']
});

<script src="https://www.gstatic.com/charts/loader.js"></script>
<input type="button" id="cloneBtn" value="Clone" />
<div>Original Chart</div>
<div id="chart_orig"></div>
<div>Trial Chart</div>
<div id="chart_trial"></div>
&#13;
&#13;
&#13;