具有双Y轴但具有3个或更多时间序列的Google折线图

珍露卡·斯卡里(Jeanluca Scaleri)

我需要绘制带有多条线的线图,但是该图也是双Y型图。在我的情况下,可以是3条或更多条线,其中每条线都属于左或右Y轴。

因此,请查看文档中的example / jsfiddle

  google.charts.load('current', {'packages':['line', 'corechart']});
  google.charts.setOnLoadCallback(drawChart);

  function drawChart() {

    var button = document.getElementById('change-chart');
    var chartDiv = document.getElementById('chart_div');

    var data = new google.visualization.DataTable();
    data.addColumn('date', 'Month');
    data.addColumn('number', "Average Temperature");
    data.addColumn('number', "Average Hours of Daylight");

    data.addRows([
      [new Date(2014, 0),  -.5,  5.7],
      [new Date(2014, 1),   .4,  8.7],
      [new Date(2014, 2),   .5,   12],
      [new Date(2014, 3),  2.9, 15.3],
      [new Date(2014, 4),  6.3, 18.6],
      [new Date(2014, 5),    9, 20.9],
      [new Date(2014, 6), 10.6, 19.8],
      [new Date(2014, 7), 10.3, 16.6],
      [new Date(2014, 8),  7.4, 13.3],
      [new Date(2014, 9),  4.4,  9.9],
      [new Date(2014, 10), 1.1,  6.6],
      [new Date(2014, 11), -.2,  4.5]
    ]);

    var materialOptions = {
      chart: {
        title: 'Average Temperatures and Daylight in Iceland Throughout the Year'
      },
      width: 900,
      height: 500,
      series: {
        // Gives each series an axis name that matches the Y-axis below.
        0: {axis: 'Temps'},
        1: {axis: 'Daylight'}
      },
      axes: {
        // Adds labels to each axis; they don't have to match the axis names.
        y: {
          Temps: {label: 'Temps (Celsius)'},
          Daylight: {label: 'Daylight'}
        }
      }
    };

    var classicOptions = {
      title: 'Average Temperatures and Daylight in Iceland Throughout the Year',
      width: 900,
      height: 500,
    // Gives each series an axis that matches the vAxes number below.
      series: {
        0: {targetAxisIndex: 0},
        1: {targetAxisIndex: 1}
      },
      vAxes: {
        // Adds titles to each axis.
        0: {title: 'Temps (Celsius)'},
      1: {title: 'Daylight'}
    },
    hAxis: {
      ticks: [new Date(2014, 0), new Date(2014, 1), new Date(2014, 2), new Date(2014, 3),
              new Date(2014, 4),  new Date(2014, 5), new Date(2014, 6), new Date(2014, 7),
              new Date(2014, 8), new Date(2014, 9), new Date(2014, 10), new Date(2014, 11)
             ]
    },
    vAxis: {
      viewWindow: {
        max: 30
      }
    }
  };

  function drawMaterialChart() {
    var materialChart = new google.charts.Line(chartDiv);
    materialChart.draw(data, materialOptions);
    button.innerText = 'Change to Classic';
    button.onclick = drawClassicChart;
  }

  function drawClassicChart() {
    var classicChart = new google.visualization.LineChart(chartDiv);
    classicChart.draw(data, classicOptions);
    button.innerText = 'Change to Material';
    button.onclick = drawMaterialChart;
  }

  drawMaterialChart();

}

演示

目前还不清楚我该怎么做。我尝试添加另一个,data.addRows([...])但没有给出一个很好的图表

有什么建议?

白帽

不确定我是否完全理解这个问题。
但是如果您只想添加其他行,则
需要在数据表中添加其他列。

对于添加的每列,新线或系列将添加到图表中。
下面的数据表将生成四行。

var data = new google.visualization.DataTable();
data.addColumn('date', 'Month');
data.addColumn('number', "Line 1 - Series 0");
data.addColumn('number', "Line 2 - Series 1");
data.addColumn('number', "Line 3 - Series 2");
data.addColumn('number', "Line 4 - Series 3");

然后您可以
通过设置axis名称来控制每条线属于哪个轴

  series: {
    // Gives each series an axis name that matches the Y-axis below.
    0: {axis: 'Temps'},
    1: {axis: 'Daylight'},
    2: {axis: 'Temps'},
    3: {axis: 'Daylight'}
  },

在这里,第一行或系列0将属于左轴Temps。
右边的第二个(系列1)(日光),依此类推。

请参阅以下工作片段...

  google.charts.load('current', {'packages':['line', 'corechart']});
  google.charts.setOnLoadCallback(drawChart);

  function drawChart() {

    var button = document.getElementById('change-chart');
    var chartDiv = document.getElementById('chart_div');

    var data = new google.visualization.DataTable();
    data.addColumn('date', 'Month');
    data.addColumn('number', "Line 1 - Series 0");
    data.addColumn('number', "Line 2 - Series 1");
    data.addColumn('number', "Line 3 - Series 2");
    data.addColumn('number', "Line 4 - Series 3");

    data.addRows([
      [new Date(2014, 0),  -.5,  5.7, -1, 10],
      [new Date(2014, 1),   .4,  8.7, -1, 10],
      [new Date(2014, 2),   .5,   12, -1, 10],
      [new Date(2014, 3),  2.9, 15.3, -1, 10],
      [new Date(2014, 4),  6.3, 18.6, -1, 10],
      [new Date(2014, 5),    9, 20.9, -1, 10],
      [new Date(2014, 6), 10.6, 19.8, -1, 10],
      [new Date(2014, 7), 10.3, 16.6, -1, 10],
      [new Date(2014, 8),  7.4, 13.3, -1, 10],
      [new Date(2014, 9),  4.4,  9.9, -1, 10],
      [new Date(2014, 10), 1.1,  6.6, -1, 10],
      [new Date(2014, 11), -.2,  4.5, -1, 10]
    ]);

    var materialOptions = {
      chart: {
        title: 'Average Temperatures and Daylight in Iceland Throughout the Year'
      },
      width: 900,
      height: 500,
      series: {
        // Gives each series an axis name that matches the Y-axis below.
        0: {axis: 'Temps'},
        1: {axis: 'Daylight'},
        2: {axis: 'Temps'},
        3: {axis: 'Daylight'}
      },
      axes: {
        // Adds labels to each axis; they don't have to match the axis names.
        y: {
          Temps: {label: 'Temps (Celsius)'},
          Daylight: {label: 'Daylight'}
        }
      }
    };

    var classicOptions = {
      title: 'Average Temperatures and Daylight in Iceland Throughout the Year',
      width: 900,
      height: 500,
    // Gives each series an axis that matches the vAxes number below.
      series: {
        0: {targetAxisIndex: 0},
        1: {targetAxisIndex: 1},
        2: {targetAxisIndex: 0},
        3: {targetAxisIndex: 1}
      },
      vAxes: {
        // Adds titles to each axis.
        0: {title: 'Temps (Celsius)'},
      1: {title: 'Daylight'}
    },
    hAxis: {
      ticks: [new Date(2014, 0), new Date(2014, 1), new Date(2014, 2), new Date(2014, 3),
              new Date(2014, 4),  new Date(2014, 5), new Date(2014, 6), new Date(2014, 7),
              new Date(2014, 8), new Date(2014, 9), new Date(2014, 10), new Date(2014, 11)
             ]
    },
    vAxis: {
      viewWindow: {
        max: 30
      }
    }
  };

  function drawMaterialChart() {
    var materialChart = new google.charts.Line(chartDiv);
    materialChart.draw(data, materialOptions);
    button.innerText = 'Change to Classic';
    button.onclick = drawClassicChart;
  }

  function drawClassicChart() {
    var classicChart = new google.visualization.LineChart(chartDiv);
    classicChart.draw(data, classicOptions);
    button.innerText = 'Change to Material';
    button.onclick = drawMaterialChart;
  }

  drawMaterialChart();

}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

d3.js中的双Y轴折线图,没有外部数据

来自分类Dev

如何具有第二个y轴并在其中嵌入折线图

来自分类Dev

如何在具有多个y轴的多折线图上绘制数据点

来自分类Dev

情节:如何创建具有多色标签的时间序列变量的折线图?

来自分类Dev

Haskell图表库:制作具有相同x和y轴的log-log折线图

来自分类Dev

在日期轴上具有点大小的折线图-R

来自分类Dev

具有 2 个 y 轴(辅助 y 轴)的 2 个 ts 对象(时间序列)的 ggplot

来自分类Dev

带有三重 y 轴的 Google 折线图

来自分类Dev

绘制具有动态数据行数的折线图

来自分类Dev

具有多个变量的SPSS折线图

来自分类Dev

具有区域范围的Chart.js折线图

来自分类Dev

创建具有定义逻辑的折线图

来自分类Dev

如何绘制具有重复日期值的折线图?

来自分类Dev

折线图具有多个字段ext js

来自分类Dev

绘制具有动态数据行数的折线图

来自分类Dev

创建具有定义逻辑的折线图

来自分类Dev

dc.js中的双Y轴折线图

来自分类Dev

dc.js中的双Y轴折线图

来自分类Dev

如何使用gnuplot在一个图中绘制具有不同x范围的折线图

来自分类Dev

dc.js堆叠的折线图,具有1个以上的维度

来自分类Dev

Google Analytics(分析)DataChart-如何创建具有多个系列的单个折线图?

来自分类Dev

Google折线图使具有相同值的线都可见

来自分类Dev

Google图表-具有不同日期的相同日期的折线图

来自分类Dev

d3js多折线图,具有焦点+上下文缩放

来自分类Dev

d3多折线图,具有不同的功能/变量名称

来自分类Dev

具有JSON数据的D3可重用多折线图

来自分类Dev

NVD3折线图-具有独立事件的叠加点

来自分类Dev

具有JSON日期的D3 v4折线图

来自分类Dev

散景中具有多个x轴刻度的水平条形图和折线图

Related 相关文章

  1. 1

    d3.js中的双Y轴折线图,没有外部数据

  2. 2

    如何具有第二个y轴并在其中嵌入折线图

  3. 3

    如何在具有多个y轴的多折线图上绘制数据点

  4. 4

    情节:如何创建具有多色标签的时间序列变量的折线图?

  5. 5

    Haskell图表库:制作具有相同x和y轴的log-log折线图

  6. 6

    在日期轴上具有点大小的折线图-R

  7. 7

    具有 2 个 y 轴(辅助 y 轴)的 2 个 ts 对象(时间序列)的 ggplot

  8. 8

    带有三重 y 轴的 Google 折线图

  9. 9

    绘制具有动态数据行数的折线图

  10. 10

    具有多个变量的SPSS折线图

  11. 11

    具有区域范围的Chart.js折线图

  12. 12

    创建具有定义逻辑的折线图

  13. 13

    如何绘制具有重复日期值的折线图?

  14. 14

    折线图具有多个字段ext js

  15. 15

    绘制具有动态数据行数的折线图

  16. 16

    创建具有定义逻辑的折线图

  17. 17

    dc.js中的双Y轴折线图

  18. 18

    dc.js中的双Y轴折线图

  19. 19

    如何使用gnuplot在一个图中绘制具有不同x范围的折线图

  20. 20

    dc.js堆叠的折线图,具有1个以上的维度

  21. 21

    Google Analytics(分析)DataChart-如何创建具有多个系列的单个折线图?

  22. 22

    Google折线图使具有相同值的线都可见

  23. 23

    Google图表-具有不同日期的相同日期的折线图

  24. 24

    d3js多折线图,具有焦点+上下文缩放

  25. 25

    d3多折线图,具有不同的功能/变量名称

  26. 26

    具有JSON数据的D3可重用多折线图

  27. 27

    NVD3折线图-具有独立事件的叠加点

  28. 28

    具有JSON日期的D3 v4折线图

  29. 29

    散景中具有多个x轴刻度的水平条形图和折线图

热门标签

归档