zoukankan      html  css  js  c++  java
  • 数据可视化(3)--Google Charts

    Google Chart API 是谷歌提供的一项动态生成图表的服务。你可以随时自定义图表,以适应网站的外观和感觉。图表使用HTML5/SVG技术提供给iPhone手机, iPad和Android的跨浏览器兼容性(包括VML较旧版本的IE )和跨平台的可移植性呈现。

    官网地址:https://developers.google.com/chart/?hl=zh-cn

    运行下面这段代码,可以动态生成一个漂亮的图表

    <html>
      <head>
        <!--Load the AJAX API-->
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
        <script type="text/javascript">
    
          // Load the Visualization API and the piechart package.
          google.load('visualization', '1.0', {'packages':['corechart']});
    
          // Set a callback to run when the Google Visualization API is loaded.
          google.setOnLoadCallback(drawChart);
    
          // Callback that creates and populates a data table,
          // instantiates the pie chart, passes in the data and
          // draws it.
          function drawChart() {
    
            // Create the data table.
            var data = new google.visualization.DataTable();
            data.addColumn('string', 'Topping');
            data.addColumn('number', 'Slices');
            data.addRows([
              ['Mushrooms', 3],
              ['Onions', 1],
              ['Olives', 1],
              ['Zucchini', 1],
              ['Pepperoni', 2]
            ]);
    
            // Set chart options
            var options = {'title':'How Much Pizza I Ate Last Night',
                           'width':400,
                           'height':300};
    
            // Instantiate and draw our chart, passing in some options.
            var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
            chart.draw(data, options);
          }
        </script>
      </head>
    
      <body>
        <!--Div that will hold the pie chart-->
        <div id="chart_div"></div>
      </body>
    </html>

    效果如下

    那么他到底是如何工作的?

    绘制chart需要三个库

    • 谷歌JSAPI库
    • 谷歌可视化库(The Google Visualization library)
    • chart自身的库(相应的packages)

    这三个库通过两个<script>标签引入

    <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
    
      // Load the Visualization API library and the piechart library.
      google.load('visualization', '1.0', {'packages':['corechart']});
      google.setOnLoadCallback(drawChart);
      // ... draw the chart...
    </script>

    第一个script标签引入了JSAPI库。

    第二个script标签引入了谷歌可视化库和chart库,它通常还保存你的chart的代码。

    第二个script标签的第一行调用了google.load()函数。这个函数需要以下语法:

    google.load('visualization', '1.0', {'packages':[<list_of_package_names>]});

    visualization        加载google.visualization库。该库定义了所有的核心工具类和函数。

    1.0             加载的visualization的版本。 1.0始终是当前的生产版本。

    list_of_package_names   在该示例中的'corechart'库定义了最基本的图表,包括饼图,条形图和柱形图。如果你要绘制的图表不包含在这个库中,你必须为相应的图表增加一条,作为单独的数组项。该库中被定义。例如每个图表的文档列表,这里是如何加载的核心图表加一个表图表: google.load('visualization', '1.0', {'packages':['corechart','table']});

    准备数据

    创建一个数据表,使用google.visualization.DataTable类

            // Create the data table.
            var data = new google.visualization.DataTable();
            data.addColumn('string', 'Topping');
            data.addColumn('number', 'Slices');
            data.addRows([
              ['Mushrooms', 3],
              ['Onions', 1],
              ['Olives', 1],
              ['Zucchini', 1],
              ['Pepperoni', 2]
            ]);

    添加两列,一列类型为string,名称为Topping,另一列类型为number,名称为Slices。

    添加五列作为chart的数据

     设置chart参数,包括chart的标题、长和宽。

    // Set chart options
     var options = {'title':'How Much Pizza I Ate Last Night',
                    'width':400,
                    'height':300};

     使用draw函数将图表绘制到指定的元素上

     // Instantiate and draw our chart, passing in some options.
     var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
     chart.draw(data, options);
  • 相关阅读:
    LeetCode Combination Sum III
    LeetCode Contains Duplicate
    CSRF & CORS
    LeetCode Kth Largest Element in an Array
    Maven 使用 Nexus 内部库 代理
    可重定位目标文件
    过程(栈帧结构是干货)
    控制语句(if-else+循环+switch)汇编规则
    程序编码(机器级代码+汇编代码+C代码+反汇编)
    转移指令jmp和跳转指令call
  • 原文地址:https://www.cnblogs.com/CraryPrimitiveMan/p/3469713.html
Copyright © 2011-2022 走看看