将其他数据添加到Google图表dataTable

时间:2014-09-08 15:19:26

标签: google-visualization

我正在使用谷歌散点图来显示表面上的缺陷。所有缺陷都有一个ID,当我点击一个点时,我希望从我可以获取该ID的事件开始,并用它来做其他事情。

在谷歌图表中,我可以从选择的地方连接选择处理程序,但如何在不显示数据表的情况下将数据(或任何其他数据)添加到某个点?

例如:

    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn('number', 'Width');
    dataTable.addColumn('number', 'Yellow');
    dataTable.addColumn({ type: 'string', role: 'tooltip', 'p': { 'html': true } });
    dataTable.addColumn('number', 'Red');
    dataTable.addColumn({ type: 'string', role: 'tooltip', 'p': { 'html': true } });
    dataTable.addColumn('number', 'Id'); <-- this doesn't work

最后一列我想添加缺陷的ID并通过selectHandler检索它。

dataTable.addRow([123, 123, 'some tooltip', null, null, 999]);

我在这里添加了ID 999。但我不希望图表显示它。如何向点添加其他(隐藏)数据?

2 个答案:

答案 0 :(得分:6)

您可以添加包含所需信息的额外列,然后使用DataView隐藏它们:

var dataTable = new google.visualization.DataTable();
dataTable.addColumn('number', 'Width');
dataTable.addColumn('number', 'Yellow');
dataTable.addColumn({ type: 'string', role: 'tooltip', 'p': { 'html': true } });
dataTable.addColumn('number', 'Red');
dataTable.addColumn({ type: 'string', role: 'tooltip', 'p': { 'html': true } });
dataTable.addColumn('number', 'Id');

// populate dataTable

var view = new google.visualization.DataView(dataTable);
// exclude column 5 (Id)
view.setColumns([0, 1, 2, 3, 4]);

然后使用DataView而不是DataTable绘制图表。

答案 1 :(得分:1)

setRowProperties(rowIndex, properties)适用于这种情况,删除Id列并添加dataTable.setRowProperties(0,{'id':'999'});

您可以使用getRowProperties(rowIndex);

获取该行的属性