1最近要求做一个highchart堆叠柱图,用来实现的展示
隐含要求
其一:每一个柱图中的显示堆叠数量不一定,这个用highchart 本身的series{[data:[]]}实现起来比较困难,
其二:要求显示每一个柱图的峰值,比要求超过的地方可以显示其他颜色
解决方法:
针对其一:
查看highchart文档 发现data中有x属性,可以设置其显示的x坐标位置。所以可以通过设置data的x属性来控制一个series组中每一个data的显示位置
这样就遇到一个问题,即自带的图例显示legend数量是series数组的数量 不能显示我们要求的数量。这一部分要自己去写方法进行图像重绘。
这里需要注意颜色代码在IE中是小写的
针对其二:
如何显示plotline plotband?highchart自动的显示是横贯x轴或者y轴,这样不能满足我们得要求
查看编译的页面可以发现其页面标签是一个path标签,于是可以通过修改path的d属性来改成我们想要的结果
这里又碰见了一个问题:path标签的d属性在IE和谷歌浏览器中的解析是不一样的,格式如下:
谷歌:直线(M x1 y1 L x2 y2);方形:(M x1 y1 L x2 y2 x3 y3 x4 y4)
IE: 直线(M x1 y1 L x2 y2);方形:(M x1 y1 L x2 y2 L x3 y3 L x4 y4)
上网查path如何解析d属性,没找到!只能用笨方法判断浏览器 重拼字符串
判断浏览器(不得不说IE太坑了),由于使用的jquery1.10 没有$.browser 又是一通seach 才找到这段 可以完美的判断出IE和谷歌
if(document.all){
alert('ie')
}else{
if(("ActiveXObject" in window) && !document.attachEvent){//IE 11
alert('ie11')
}
}else{//notIE
alert('notie')
}
}