由于使用DataMap收到的值,Google图表会因无效颜色而引发错误。
您可以在选项中看到颜色:[颜色]。
如果我直接使用如下的颜色值,那么它可以正常工作。
colors: ['#006400', '#3cb371', 'red', '#f5fffa'],
但是如果我通过数据映射获取值并且它具有相同的输出,则它不起作用并抛出错误:
"'#006400' is not a valid color string".
是否存在任何数据格式问题?
{"cols":[{"label":"status","type":"string"},{"label":"count","type":"string"}],"rows":[{"c":[{"v":"CLOSED"},{"v":3}]},{"c":[{"v":"VERIFIED"},{"v":35}]},{"c":[{"v":"RESOLVED"},{"v":15}]},{"c":[{"v":"IN_PROGRESS"},{"v":92}]},{"c":[{"v":"ASSIGNED"},{"v":63}]},{"c":[{"v":"NEW"},{"v":16}]},{"c":[{"v":""},{"v":0}]}]}
const DataMap = {
CLOSED: '#006400',
VERIFIED: '#006400',
RESOLVED: '#3cb371',
REOPENED: 'red',
IN_PROGRESS: '#f5fffa',
ASSIGNED: 'brown',
NEW: 'brown',
UNCONFIRMED: 'brown'
};
let myColors = [];
Object.keys(DataMap).forEach((key, index) => {
if (jsonData.search(key) !== -1) {
myColors.push("'" + DataMap[key] + "'");
}
});
options = {
title: chartTitle,
width: '410',
height: '320',
backgroundColor: '#f5fffa',
is3D: true,
colors: [myColors],
chartArea: {
left: "20%",
top: "20%",
height: "100%",
width: "100%"
}
};
chart.draw(data, options);
options = {
title: chartTitle,
width: '410',
height: '320',
backgroundColor: '#f5fffa',
is3D: true,
colors: ['#006400', '#3cb371', 'red', '#f5fffa'],
chartArea: {
left: "20%",
top: "20%",
height: "100%",
width: "100%"
}
};
chart.draw(data, options);
可能是什么问题,我该如何解决?
答案 0 :(得分:1)
我现在能说的是:
myColors.push("'" + DataMap[key] + "'");
应改为
myColors.push(DataMap[key]);
因为DataMap
中每个键的值都已经是字符串,即DataMap[key]
是一个字符串。
其次,而不是
colors: [myColors],
应该只是
colors: myColors,
因为myColors
已经是一个数组。