【问题标题】:How to make a Google Line Chart reference element values instead of static numbers如何制作谷歌折线图参考元素值而不是静态数字
【发布时间】:2020-03-04 16:46:17
【问题描述】:

我目前正在尝试设计一个基于整个 html 文档中某些 div 标签内的值建模的 Google Chart。

就目前而言,整个文档中有许多标签,例如:

<div id="abc"> 11000 </div>
<div id="def"> 12500 </div>
<div id="ghi"> 17000 </div>

我希望 Google 图表将这些值作为 Y 轴。

Google Charts 代码可以正常工作,如下所示:

    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['corechart']});
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Age', 'Current', 'Proposed'],
          ['25',  10000],
          ['35',  15170],
          ['45',  21660],
        ]);
        var options = {
          title: 'Balance Comparison',
          curveType: 'function',
          legend: { position: 'bottom' }
        };
        var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
        chart.draw(data, options);
      }
    </script>
 <div id="curve_chart" style="width: 900px; height: 500px"></div>

我想以引用 div 值的方式更改数组。我试图这样做,结果是这样的:

function drawChart() {
            var y1 = document.getElementByID("abc")
            var y2 = document.getElementByID("def")
            var y3 = document.getElementByID("ghi")
            var data = google.visualization.arrayToDataTable([
              ['Age', 'Current'],
              ['25',  y1],
              ['35',  y2],
              ['45',  y3],
            ]);

但这似乎不起作用,我不知道如何让它工作。

【问题讨论】:

    标签: javascript html charts google-visualization


    【解决方案1】:

    它会起作用,首先,有几件事......

    javascript区分大小写,将getElementByID改为getElementById(注意最后一个字母)

    getElementById 获取元素,但您想要元素的内容。
    使用innerHTML 获取内容。

    var y1 = document.getElementById('abc').innerHTML;
    

    最后,谷歌图表需要一个数字作为 y 值,
    innerHTML 返回一个字符串。

    使用parseFloat 将字符串转换为数字。

    parseFloat(y1)
    

    请参阅以下工作 sn-p...

    google.charts.load('current', {
      packages: ['corechart']
    }).then(function () {
      var y1 = document.getElementById('abc').innerHTML;
      var y2 = document.getElementById('def').innerHTML;
      var y3 = document.getElementById('ghi').innerHTML;
    
      var data = google.visualization.arrayToDataTable([
        ['Age', 'Current'],
        ['25',  parseFloat(y1)],
        ['35',  parseFloat(y2)],
        ['45',  parseFloat(y3)],
      ]);
    
      var options = {
        title: 'Balance Comparison',
        curveType: 'function',
        legend: { position: 'bottom' }
      };
    
      var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
    
      chart.draw(data, options);
    });
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <div id="abc"> 11000 </div>
    <div id="def"> 12500 </div>
    <div id="ghi"> 17000 </div>
    <div id="curve_chart"></div>

    【讨论】:

    • 这个问题好运吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 2013-05-23
    • 1970-01-01
    相关资源
    最近更新 更多