具有可选 Google 图表类型的仪表板

Dashboard with selectable Google chart type

我不熟悉 google 图表,所以如果这个问题过于宽泛或毫无意义,请原谅。

我想知道如何从可能的图表列表中创建图表类型 selectable 的 google 图表仪表板。对于同一组数据,应显示所有适用的图表类型,并且用户 select 是他想要的。之后,数据会根据图表自动呈现 selected.

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

这个组件是否已经存在并且我可以使用?有什么建议吗?

您可以使用 '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>