【问题标题】:Google Charts: Gauge-Graph changes to max value after seconds谷歌图表:几秒钟后仪表图变为最大值
【发布时间】:2017-01-08 14:14:17
【问题描述】:

我正在使用 Google Charts API 进行一个小型学生项目(将温度从 Raspberry Pi 发送到服务器)。在我的服务器的 HTML 响应中,返回一个仪表图。一切正常,除了一件小事:大约 10 秒后,两个仪表中的第一个跳到它的最大值(一个很高的值,不属于数据集的一部分)。

在另一个项目中,我已经遇到了同样的错误(使用 4 个仪表图)。奇怪的是,它总是只发生在第一个仪表图上。

您可以在http://141.28.105.163/records 下自己看到它...大约 10 秒后,第一个图表从大约 21 跳到 51 或类似的东西。

这是代码:

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

            var data = google.visualization.arrayToDataTable([
                ['Label', 'Value'],
                ['Min', 17],
                ['Max', 23]
            ]);

            var options = {
                minorTicks: 10,
                min: 0,
                max: 40
            };

            var chart = new google.visualization.Gauge(document.getElementById('temp_chart'));

            setInterval(function() {
                data.setValue(0, 1, 40 + Math.round(60 * Math.random()));
                chart.draw(data, options);
            }, 13000);

            chart.draw(data, options);
      }
    </script>
</head>
<body>
    <div id="temp_chart" style="width: 100%; height: 100%"></div>
</body>
</html>

【问题讨论】:

  • 40 + Math.round(60 * Math.random())。那应该怎么做?
  • 谢谢,整个部分是不必要的!

标签: javascript graph charts google-visualization gauge


【解决方案1】:

谢谢,就是这样。这是我刚刚从 Google 复制和粘贴的整个部分:

setInterval(function() {
    data.setValue(0, 1, 40 + Math.round(60 * Math.random()));
    chart.draw(data, options);
}, 13000);

没有它也能完美运行!

【讨论】:

  • 没错,但一开始它只需要快速和肮脏的工作;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-09
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多