2

我正在使用包含三个不同系列的 Google Charts AnnotatedTimeline。

第一个系列有自己的规模。第二个和第三个应该具有相同的比例,因为它们代表相同类型的数据。

问题是我一次只能将秤与一个系列相关联。这是我目前绘制图表的方式:

chart.draw(chartData, {scaleType: 'allmaximized', scaleColumns:[0, 1], displayExactValues: true, dateFormat: 'dd MMMM yyyy'});

这样一来,第一个系列在左边就有了自己的比例,这很好。但是,第二个比例仅使用第二个系列的值计算,因此第三个系列在图表上放错了位置。将方法更改为:

chart.draw(chartData, {scaleType: 'allmaximized', scaleColumns:[0, 1, 2], displayExactValues: true, dateFormat: 'dd MMMM yyyy'});

在第三个系列的图表中间添加了第三个比例,这不是我想要的。

有没有办法对系列 2 和系列 3 进行分组以获得相同的比例?

4

2 回答 2

1

我明白你现在想做什么。您只想有 2 个轴,1 个对应于 0/1 列中的值,另一个对应于第 2 列。我把这个例子放在一起(随意复制粘贴到谷歌游乐场):

function drawVisualization() {
  var data = new google.visualization.DataTable();
  data.addColumn('date', 'Date');
  data.addColumn('number', 'Sold Pencils');
  data.addColumn('string', 'title1');
  data.addColumn('string', 'text1');
  data.addColumn('number', 'Sold Pens');
  data.addColumn('string', 'title2');
  data.addColumn('string', 'text2');
  data.addColumn('number', 'Sold Erasers');
  data.addColumn('string', 'title3');
  data.addColumn('string', 'text3');
  data.addRows([
    [new Date(2008, 1 ,1), 30000, null, null, 40645, null, null, 100, null, null],
    [new Date(2008, 1 ,2), 14045, null, null, 20374, null, null, 120, null, null],
    [new Date(2008, 1 ,3), 55022, null, null, 50766, null, null, 70, null, null],
    [new Date(2008, 1 ,4), 75284, null, null, 14334, 'Out of Stock', 'Ran out of stock on pens at 4pm', 100, null, null],
    [new Date(2008, 1 ,5), 41476, 'Bought Pens', 'Bought 200k pens', 66467, null, null, 110, null, null],
    [new Date(2008, 1 ,6), 33322, null, null, 39463, null, null, 130, 'Eraser Boom', 'People dig erasers']
  ]);

  var annotatedtimeline = new google.visualization.AnnotatedTimeLine(
      document.getElementById('visualization'));
  annotatedtimeline.draw(data, {'displayAnnotations': true, scaleType: 'allmaximized', scaleColumns:[0, 2]});
}

这在左侧刻度上显示第 0/1 列,在右侧刻度上显示第 2 列。

于 2013-01-23T03:55:25.923 回答
0

为系列 2 和 3 获得相同的比例?
看起来唯一的方法是“破解”它。您可以通过在系列的末尾(或开头)添加两行假值来做到这一点。获取变量, , ,
中系列 2 和 3 的最大值和最小值。然后附加两行(假)值:max2max3min2min3

  row1 = last value of series 1, Max(max2, max3), Max(max2, max3)
  row2 = last value of series 1, Min(min2, min3), Min(min2, min3)

您还需要设置选项scaleType:'allmaximized'并且您的系列 2 和 3 将完全对齐。

于 2013-11-06T09:17:18.453 回答