最近在做统计图的时候,碰到一个需求 类似如下:
就是在红色虚线框内的折线在不同区域用不同的颜色表示,并且是虚线。
开始定位为用highcharts库实现。确定用这个库后,开始在网上查资料,发现有类似的例子,网址是:http://code.hcharts.cn/hcharts.cn/hhhhco
$(function () {
$('#container').highcharts({
series: [{
data: [-10, -5, 0, 5, 10, 15, 10, 10, 5, 0, -5],
zones: [{
value: 0,
color: '#f7a35c',
dashStyle: 'dot'
}, {
value: 10,
color: '#7cb5ec'
},{
color: '#90ed7d'
},
]
}]
});
});
highcharts demo
效果图如下:
发现它使根据y轴的value值来分段展示的,虽然不符合我的要求,但是从中可以看到2点提示:
1. 分段显示可以根据series 中的zones 来实现;
2. 虚线可以用dashStyle: 'dot' 来实现;
要想看这个库能否实现我们的需求,最好的办法是查它的API。功夫不负有心人,我在API中找到实现方法。
在 plotOptions.series.zoneAxis 中可以选定使根据x的value还是y得value 来分段,默认是y轴的value,然后我们在series中设置zones就可以了。
具体网址 http://api.highcharts.com/highcharts#plotOptions.series.zones
最近在做报表中几乎翻遍了highcharts 的API,发现了它的强大,也解决了很多奇葩问题,另外也研究了另一个javascript图表插件echarts,它也是一个非常强大的图表库。大家如果在用这两个图表库中碰到什么问题,我们可以一起探讨。