Javascript GoogleCharts API,AnnotatedTimeline:正确设置几个系列和比例

Javascript GoogleCharts API,AnnotatedTimeline:正确设置几个系列和比例,javascript,scale,google-visualization,Javascript,Scale,Google Visualization,我使用的是谷歌图表的注释时间线,它包含三个不同的系列 第一个系列有自己的规模。第二个和第三个应具有相同的比例,因为它们表示相同类型的数据 问题是,我一次只能将刻度关联到一个系列。以下是我目前绘制图表的方式: chart.draw(chartData, {scaleType: 'allmaximized', scaleColumns:[0, 1], displayExactValues: true, dateFormat: 'dd MMMM yyyy'}); 这样,第一个系列在左边有自己的刻度,

我使用的是谷歌图表的注释时间线,它包含三个不同的系列

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

问题是,我一次只能将刻度关联到一个系列。以下是我目前绘制图表的方式:

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'});

在第三个系列的图中间添加了第三个刻度,这不是我想要的。< /P>


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

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


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

系列2和系列3的刻度相同吗?
看来唯一的办法就是“破解”它。您可以通过在序列的末尾(或开头)添加两行伪值来完成此操作。
获取变量
max2
max3
min2
min3
中系列2和3的最大值和最小值。 然后附加两行(假)值:


您还需要设置选项缩放类型:'allmaximized',系列2和系列3将完全对齐。

不是对缩放类型问题的直接回答,但您可以通过为各个轴绘制自己的最大/最小值来获得所需的结果。请参阅该方法,该方法非常有效,可以为两个系列获得适当的比例。但是,似乎无法为特定比例指定最小值和最大值。因此,第二组和第三组值正确地以相同的比例显示(它们大约在1000到3000之间),但第一组值被排除在图表之外(总是低于100)。我在操场上尝试了这一点,第1列和第2列的比例不同。例如,在2月3日,“卖出的笔”是50766,“铅笔”是55022,但“卖出的笔”在图表上面。哇,你完全正确。那到底是怎么回事?你有没有理由不能使用一个无限可定制的带有滑块的折线图来控制日期?flash图表的功能非常有限……我可以使用另一个图表工具,我只是选择了谷歌的,因为它非常容易集成,并且可以满足我的需要(很明显,几乎可以)
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]});
}
  row1 = last value of series 1, Max(max2, max3), Max(max2, max3)
  row2 = last value of series 1, Min(min2, min3), Min(min2, min3)