highchart堆叠柱图带峰值

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')
       } 
}

至此 才出现上面的结果图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值