1

假设我的谷歌图表数据数组如下所示,有没有办法为谷歌图表定位特定数据集并做一些事情。类似 if data = "13 dec 11 Tue" 那么 56 的点应该使用与休息不同的颜色......

["13 Dec 11 Tue",56],
["14 Dec 11 Wed",168],
["15 Dec 11 Thu",181],
["16 Dec 11 Fri",163],
["17 Dec 11 Sat",172]
...
4

1 回答 1

0

是的,这是可能的,但它需要在 javascript 中编码,并且不能在 Google Visualization 中使用ColorFormatter保存在表格中。假设您想在图表中执行此操作,则需要编写代码来执行此操作。

选项 1:创建颜色数组

您可以使用series大多数图表的配置选项来设置每个系列的显示颜色。

例如,如果我有 3 个系列,那么我可以设置以下选项将第二个系列变为红色:

series: [{}, {color: 'red'}, {}]

这不会为系列 1 和 3 设置任何选项,但将系列 2 的颜色更改为红色。

因此,您可以使用 Javascript 循环遍历您的数据,并创建一个颜色数组以分配给各个系列。例如,如果您希望第 1 列中高于 10 的任何值变为红色,则可以按如下方式进行:

var colorArray = {};
for(i=0;i<data.getNumberOfRows;i++) {
  if(data.getDataValue(i, 1)>10)
    colorArray.push({color: 'red'});
  else
    colorArray.push({});
};

然后将选项设置为:

options = {series = colorArray};

注意:上面的代码没有经过检查,可能是我刚刚打出来的有错误。如果它不起作用,请更正我的代码,但逻辑是合适的。

选项 2:移动系列

默认情况下,每个不同的数据列将具有不同的颜色。您可以创建一个类似的循环来检查每个项目的值,并将其移动到另一个系列。只需创建一个不同的 for 循环来遍历您要检查的值,如果它找到您要查找的内容,请将值移动到该新系列中。

这更复杂,但它会给你更多的灵活性,具体取决于你想做的事情(因为你有一个完全不同的系列,你可以用不同的线条大小、标记、条宽或其他自定义它)。

无论您选择做什么,最好的办法就是使用它并找到您喜欢的东西,这对您来说最容易使用您的数据进行编码。

于 2013-05-22T00:50:14.443 回答