带有可选Google图表类型的信息中心

时间:2017-06-08 14:50:28

标签: javascript charts google-visualization pygooglechart

我不熟悉谷歌图表,所以请原谅我这个问题是否过于宽泛或毫无意义。

我想知道如何创建一个谷歌图表仪表板,其图表类型可从可能的图表列表中选择。对于同一组数据,应显示所有适用的图表类型,并且用户选择他想要的图表类型。之后,数据将根据所选图表自动呈现。

例如,检查Visualizing SPARQL query results in GraphDB,可以使用一组可以选择甚至配置的相应谷歌图表来显示任何查询的结果。要尝试它,在查询编辑窗格的右上角,有一个文件夹图标,您可以在其中选择已保存的查询,然后在窗格底部选择谷歌图表并配置然后呈现结果。

这是一个已经存在的组件,我可以使用吗?有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您可以使用'controls'

中的ChartWrapper class

它具有chartType ...

的属性
var chart = new google.visualization.ChartWrapper({
  chartType: 'BarChart',  // <-- chart type property
  containerId: 'chart',
  dataTable: data,
  options: {
    height: 240,
    theme: 'maximized'
  }
});

请参阅以下工作代码段,图表类型由<select>

更改

google.charts.load('current', {
  callback: drawChart,
  packages: ['controls', 'corechart']
});

function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ['x', 'y0'],
    ['a', 898],
    ['b', 37319],
    ['c', 8980],
    ['d', 35400]
  ]);

  var chartType = document.getElementById('chart-type');
  var chartWrapper = new google.visualization.ChartWrapper({
    chartType: chartType.value,
    containerId: 'chart',
    dataTable: data,
    options: {
      height: 240,
      theme: 'maximized'
    }
  });
  chartType.addEventListener('change', drawChartWrapper, false);
  drawChartWrapper();

  function drawChartWrapper() {
    chartWrapper.setChartType(chartType.value);
    chartWrapper.draw();
  }
}
div {
  padding: 6px;
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div>
  <select id="chart-type">
    <option value="BarChart" selected>Bar</option>
    <option value="ColumnChart">Column</option>
    <option value="LineChart">Line</option>
    <option value="PieChart">Pie</option>
  </select>
</div>
<div id="chart"></div>