为要实现柱形堆叠图,本身只有一个分组,也要使用这样的图像格式来完成。
从highcharts官网上找到例子,复制过来,经过好几轮的修改,总是报错“SCRIPT5007: 无法获取未定义或 null 引用的属性“dataMin””。一直找不到原因,网上搜也找不到,然后让同事看,一开始同事说我传递series的数据格式不对,应该传递array()格式的,例子中是这样的格式:
series: [{ name: 'John', data: [5, 3, 4, 7, 2], stack: 'male' }, { name: 'Joe', data: [3, 4, 4, 2, 5], stack: 'male' }, { name: 'Jane', data: [2, 5, 6, 2, 1], stack: 'female' }, { name: 'Janet', data: [3, 0, 4, 4, 3], stack: 'female' }]
我经过写之后,
var seriesList = new Array();
seriesList.push({ name: nodelist.children[j].GY_PROJECT, data: new Array(value), stack: nodelist.GY_PROJECT });
但还是报上面的错,后来又看了下js的array,又修改了下这个。
经过多番修正之后,改成如下格式:
var seriesList = new Array();
seriesList.push({ name: nodelist.children[j].GY_PROJECT, data: new Array([value]), stack: nodelist.GY_PROJECT });
但是还是出不来,不过ie报的错不一样了,“Highcharts error #14: www.highcharts.com/errors/14”。
这个错误通过网上查到,是因为数值格式的数据,必须要经过Number函数的转换才能使用。直接使用的话,就会报以上所提的错误。
seriesList.push({ name: nodelist.children[j].GY_PROJECT, data: new Array([Number(value)]), stack: nodelist.GY_PROJECT });
最后改成这样的,就可以了。