简体   繁体   English

重绘谷歌图表

[英]Redrawing google chart

Hello guys I am developing a web application with google chart . 大家好,我正在用Google Chart开发一个Web应用程序。 I want to redraw chart on each times the user makes selection And here is my code 我想在用户每次选择时重绘图表,这是我的代码

    //Loading google api
    google.load("visualization", "1", {
        packages: ["corechart"]
    });
    google.setOnLoadCallback(drawAllCharts);      
    function drawAllCharts() {
        //Sending server a request
        $.post("index.php", {
            type: "result"
        }, function (data, status) {
            handleResponse(data, true)
        });
    }
    //This function handles response of server which is a JSON string 
    function handleResponse(jsonString, init) {
        //Parsing JSON string into object

        var obj = JSON.parse(jsonString);
        var arrayData = objToStrin(obj); //Converting obj to array
        console.log(arrayData);
        drawDistChart(arrayData, init);
    }
    //This function draws first chart
    function drawDistChart(arrayData, init) {
        //Preparing data
        var dataDistribution = new google.visualization.DataTable();
        dataDistribution.addColumn('string', "Fitness");
        dataDistribution.addColumn('number', "Physical");
        dataDistribution.addColumn('number', "Emotional");
        dataDistribution.addRows(arrayData);
        //Setting few properties 
        var options = {
            title: 'No of People',
            backgroundColor: {
                fill: 'transparent'
            },
            hAxis: {
                title: 'Wellness Score',
                slantedText: true,
                titleTextStyle: {
                    color: 'red'
                }
            }
        };
        //Drawing the chart
   var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
        chart.draw(dataDistribution, options);            
}

but nothing happens , please help 但没有任何反应,请帮助

You need to add a "select" event listener to handle the user selecting chart elements: 您需要添加“选择”事件侦听器来处理用户选择图表元素的情况:

google.visualization.events.addListener(chart, 'select', function () {
    var selection = chart.getSelection();
    if (selection.length) {
        // the user clicked on a chart element
        // get row/column information from selection[n].row/column
        // do something with the selection

        // redraw the chart
        chart.draw(dataDistribution, options);
    }
});

No need to declare new google.visualization.ColumnChart each time. 无需每次都声明new google.visualization.ColumnChart

Just chart.draw(dataDistribution, options); 只是chart.draw(dataDistribution, options); will work fine. 会很好的工作。

Add chart.draw(dataDistribution, options); 添加chart.draw(dataDistribution, options); in function handleResponse function handleResponse

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM