原文: https://zetcode.com/web/googlecharts/

Google 图表教程是 Google 图表库的入门教程。 它显示了如何使用 Google 图表库在 JavaScript 中创建交互式图表。 在我们的示例中,我们创建了散点图,折线图和饼图。

Google 图表是一种交互式 Web 服务,可根据用户提供的信息创建图形图表。 用户使用嵌入在网页中的 JavaScript 提供数据和格式; 作为响应,服务发送图表图像。 该库提供了大量现成的图表类型。

图表具有一些默认外观,我们可以更改图表的外观。 图表具有高度的交互性,并公开事件,使我们可以将它们连接起来以创建复杂的结构。 图表使用 HTML5/SVG 技术呈现,以提供跨浏览器和跨平台的兼容性(包括 iPhone,iPad 和 Android)。

DataTable

图表填充有DataTable类。 它是一个二维的可变值表。 它具有用于排序,修改和过滤数据的方法。 可以直接从网页,数据库或任何支持图表工具数据源协议的数据提供者中填充它。

散点图

散点图是一种图形或数学图,使用笛卡尔坐标显示一组数据的两个变量的值。 使用google.visualization.ScatterChart创建一个散点图。

scatter.html

  1. <html>
  2. <head>
  3. <script src="https://www.gstatic.com/charts/loader.js"></script>
  4. <script>
  5. google.charts.load('current', {'packages':['corechart']});
  6. google.charts.setOnLoadCallback(drawChart);
  7. function drawChart() {
  8. var data = new google.visualization.DataTable();
  9. data.addColumn('string', 'Date');
  10. data.addColumn('number', 'Price');
  11. data.addRows([
  12. ['Mar 14', 43],
  13. ['Nov 14', 39],
  14. ['Jan 15', 42],
  15. ['Mar 15', 37],
  16. ['Dec 15', 34],
  17. ['Feb 16', 40]
  18. ]);
  19. var options = {
  20. title: "Gold Prices",
  21. width: 600,
  22. height: 400,
  23. vAxis: {title: 'USD/kg'},
  24. legend: { position: "none" }
  25. };
  26. var chart = new google.visualization.ScatterChart(document.getElementById('mychart'));
  27. chart.draw(data, options);
  28. }
  29. </script>
  30. </head>
  31. <body>
  32. <div id="mychart"></div>
  33. </body>
  34. </html>

在此示例中,我们创建了一个散点图。

  1. <script src="https://www.gstatic.com/charts/loader.js"></script>
  2. <script>

我们加载图表 API。

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

第一步,我们加载可视化 API 和corechart包。

  1. google.charts.setOnLoadCallback(drawChart);

我们设置了在加载 Google 可视化 API 时运行的回调。

  1. function drawChart() {

drawChart()函数中,我们创建并填充数据表,生成图表并绘制。

  1. var data = new google.visualization.DataTable();

我们创建数据表。

  1. data.addColumn('string', 'Date');
  2. data.addColumn('number', 'Price');

addColumn()方法添加列。 参数是数据类型和标签。

  1. data.addRows([
  2. ['Mar 14', 43],
  3. ['Nov 14', 39],
  4. ['Jan 15', 42],
  5. ['Mar 15', 37],
  6. ['Dec 15', 34],
  7. ['Feb 16', 40]
  8. ]);

数据通过addRows()方法添加到数据表中。

  1. var options = {
  2. title: "Gold Prices",
  3. width: 600,
  4. height: 400,
  5. vAxis: {title: 'USD/kg'},
  6. legend: { position: "none" }
  7. };

在这里,我们设置图表选项。 我们为图表赋予标题,设置其大小,垂直轴标签并禁用图例。

  1. var chart = new google.visualization.ScatterChart(document.getElementById('mychart'));

我们使用google.visualization.ScatterChart生成图表。 我们将图表选项传递给draw()方法。

  1. chart.draw(data, options);

该图表是用draw()方法绘制的。 我们将图表选项传递给draw()方法。

  1. <body>
  2. <div id="mychart"></div>
  3. </body>

这是将保存图表的标记。

Google 图表教程 - 图1

图:散点图

折线图

折线图是一种基本类型的图表,它将信息显示为由直线段连接的一系列数据点。 使用google.visualization.LineChart创建折线图。

linechart.html

  1. <html>
  2. <head>
  3. <script src="https://www.gstatic.com/charts/loader.js"></script>
  4. <script>
  5. google.charts.load('current', {'packages':['corechart']});
  6. google.charts.setOnLoadCallback(drawChart);
  7. function drawChart() {
  8. var data = google.visualization.arrayToDataTable([
  9. ['Age', 'Salary'],
  10. ['18', 567],
  11. ['20', 612],
  12. ['25', 800],
  13. ['30', 980],
  14. ['40', 1410],
  15. ['50', 2350]
  16. ]);
  17. var options = {
  18. title: 'Average salary per age',
  19. curveType: 'function',
  20. width:900,
  21. height:500,
  22. vAxis: {title: 'Salary (Eur)'},
  23. hAxis: {title: 'Age'},
  24. legend: { position: 'bottom' }
  25. };
  26. var chart = new google.visualization.LineChart(document.getElementById('mychart'));
  27. chart.draw(data, options);
  28. }
  29. </script>
  30. </head>
  31. <body>
  32. <div id="mychart"></div>
  33. </body>
  34. </html>

在此示例中,我们有一个折线图,显示每个年龄段的平均工资。

  1. var data = google.visualization.arrayToDataTable([
  2. ['Age', 'Salary'],
  3. ['18', 567],
  4. ['20', 612],
  5. ['25', 800],
  6. ['30', 980],
  7. ['40', 1410],
  8. ['50', 2350]
  9. ]);

arrayToDataTable()是使用二维数组并将其转换为DataTable的辅助方法。

  1. var options = {
  2. title: 'Average salary per age',
  3. curveType: 'function',
  4. ...

我们可以通过将curveType设置为function来平滑线条。

  1. var chart = new google.visualization.LineChart(document.getElementById('mychart'));

折线图是使用google.visualization.LineChart生成的。

Google 图表教程 - 图2

图:折线图

饼形图

饼图是圆形图,将其分成多个切片以说明数值比例。 使用google.visualization.PieChart创建饼图。

piechart.html

  1. <html>
  2. <head>
  3. <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
  4. <script type="text/javascript">
  5. google.charts.load('current', {'packages':['corechart']});
  6. google.charts.setOnLoadCallback(drawChart);
  7. function drawChart() {
  8. var data = new google.visualization.DataTable();
  9. data.addColumn('string', 'Fruit');
  10. data.addColumn('number', 'Quantity');
  11. data.addRows([
  12. ['Oranges', 38],
  13. ['Pears', 45],
  14. ['Plums', 24],
  15. ['Blueberries', 10]
  16. ]);
  17. var options = {
  18. 'title': 'Fruits',
  19. 'titleTextStyle': {
  20. 'fontSize': '22',
  21. },
  22. 'width':500,
  23. 'height':400
  24. };
  25. var chart = new google.visualization.PieChart(document.getElementById('mychart'));
  26. chart.draw(data, options);
  27. }
  28. </script>
  29. </head>
  30. <body>
  31. <div id="mychart"></div>
  32. </body>
  33. </html>

该示例创建一个饼图。

  1. var data = new google.visualization.DataTable();
  2. data.addColumn('string', 'Fruit');
  3. data.addColumn('number', 'Quantity');
  4. data.addRows([
  5. ['Oranges', 38],
  6. ['Pears', 45],
  7. ['Plums', 24],
  8. ['Blueberries', 10]
  9. ]);

在图表中,我们显示了可用水果的比例。

  1. var options = {
  2. 'title': 'Fruits',
  3. 'titleTextStyle': {
  4. 'fontSize': '22',
  5. },
  6. 'width':500,
  7. 'height':400
  8. };

在图表选项中,我们设置图表标题,更改默认标题字体大小并设置图表的大小。

  1. var chart = new google.visualization.PieChart(document.getElementById('chart_div'));

使用google.visualization.PieChart创建饼图。

Google 图表教程 - 图3

图:饼图

在本教程中,我们使用 Google 图表库创建了散点图,折线图和饼图。