javascript - 使用 Google Charts API 使图表保持白色

标签 javascript jquery api charts google-visualization

尝试填充图表,该图表通过 JSON 请求从另一个文件获取信息。但是有些东西坏了,我不知道是什么。

控制台一目了然。

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

        var data = new google.visualization.DataTable();
        data.addColumn('number', 'X');
        data.addColumn('number', 'Bitcoin');

        $.getJSON('./data.php', (json) => {
            $.each(json, (key, value) => {
                data.addRows([
                    [new Date(parseInt(value.timestamp)).getHours(), parseFloat(value.price)]
                ]);
            });
        });

        var options = {
            hAxis: {
                title: 'Datum'
            },
            vAxis: {
                title: 'Prijs'
            },
            backgroundColor: '#fff'
        };

        var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
        chart.draw(data, options);
    });

Chart picture

最佳答案

$.getJSON 异步运行,
这意味着 $.getJSON 之后的代码在 $.getJSON 完成之前运行。

所以您要绘制一个空白图表,然后向数据表中添加行。

尝试将剩余的代码移到 $.getJSON 中,
如下……

google.charts.load('current', {packages: ['corechart', 'line']});
google.charts.setOnLoadCallback(() => {
    var data = new google.visualization.DataTable();
    data.addColumn('number', 'X');
    data.addColumn('number', 'Bitcoin');

    $.getJSON('./data.php', (json) => {
        $.each(json, (key, value) => {
            data.addRows([
                [new Date(parseInt(value.timestamp)).getHours(), parseFloat(value.price)]
            ]);
        });

        var options = {
            hAxis: {
                title: 'Datum'
            },
            vAxis: {
                title: 'Prijs'
            },
            backgroundColor: '#fff'
        };

        var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
        chart.draw(data, options);
    });
});

关于javascript - 使用 Google Charts API 使图表保持白色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53153708/

相关文章:

javascript - 在 Jquery Mobile 中使用 Flipbox(日期框)的自定义时间值

javascript - Protractor ,使用 isDisplayed() 我得到 NoSuchElementError : No element found using locator

php - 将 $.get 的响应保存为变量

c# - 使用Jquery无法获得正确的输出

javascript - setInterval setTimeout 创建幻灯片元素的延迟和暂停

javascript - UMD 模式中的全局上下文

javascript - 使用外部按钮切换播放/暂停 Youtube 视频

rest - Agora IO云录制resourceId为null得到400响应

c - Windows 创建窗口 API

javascript - 如何开始使用某人的 API 制作一个小型跨站点 AJAX 脚本?