我需要在Google Charts中开发堆叠图表,我是新手 以下是生成图表的示例代码。
function drawChart()
{
var data = google.visualization.arrayToDataTable(["Label", "I", { role: "style" }, "J", { role: "style" }, "K", { role: "style" }, "M", { role: "style" }],["MJ1", 0.05, "#808080", 0.0775, "#C71585", 0.069, "#FFC0CB", 0.05, "Blue"],["MJ2", 0.05, "Yellow", 0.0775, "Pink", 0.069, "#808080", 0.05, "black"]);
var options = {
width: 1000,
height: 550,
legend: { position: 'none', maxLines: 6, textStyle: {color: 'black', fontSize: 10 } },
isStacked: true,
};
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
上面提到的代码工作正常。但是当我将数据更改为变量并使用下面提到的变量时,不会生成图表。
var temp = '["Machine", "I", { role: "style" }, "J", { role: "style" }, "K", { role: "style" }, "M", { role: "style" }],["MJ1", 0.05, "#808080", 0.0775, "#C71585", 0.069, "#FFC0CB", 0.05, "Blue"],["MJ2", 0.05, "Yellow", 0.0775, "Pink", 0.069, "#808080", 0.05, "black"]';
var data = google.visualization.arrayToDataTable([temp]);
谁能告诉我我做错了什么
原因:我编写了一个WCF服务,它以与temp变量字符串数据相同的格式返回简单字符串
提前谢谢!
JSFiddle也是如此 - http://jsfiddle.net/crazyCoder1989/79ffvayr/653/
答案 0 :(得分:0)
您必须将字符串转换为正确的JSON字符串,因此:
将您的temp
字符串嵌入数组分隔符 [] :
var temp = '['+temp+']';
用双引号括起属性名称:
temp = temp.replaceAll('role', '"role"');
最后JSON解析字符串并将结果传递给arrayToDataTable()
方法:
var json = JSON.parse(temp);
var data = google.visualization.arrayToDataTable(json);