[英]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.