AnyChart除了常规图以外,还支持仪表图----表盘形、温度计类型等,我们在项目进度管理的统计中用到了仪表盘,效果非常不错。
- 第一个仪表盘
第一步,创建一个简易的仪表盘
<?xml version="1.0" encoding="UTF-8"?>
<anychart>
<gauges>
<gauge>
<circular />
</gauge>
</gauges>
</anychart>
第二步,设置Scale和Title标签,Scale标签的minimum属性表示仪表的起始值,maximum表示仪表的结束值,major_interval表示多少个值一个大刻度,minor_interval表示多少个值一个小刻度。
start_angle表示6点钟方向起,顺时针多少度为0度点,如下值设置为" 90 "表示6点钟顺时针90度,那么就是9点钟方向为minimum起点。
sweep_angle表示环绕整个圆圈多少度,如下设置"180"表示环绕180度,而如果设置为"360"的话其实就是一块表的样子,只是起点是从9点开始的。
<?xml version="1.0" encoding="UTF-8"?>
<anychart>
<gauges>
<gauge>
<chart_settings>
<title>
<text>MPH Speedometer</text>
</title>
</chart_settings>
<circular>
<axis radius="50" start_angle="90" sweep_angle="180">
<scale minimum="0" maximum="120" major_interval="20" minor_interval="5" />
</axis>
</circular>
</gauge>
</gauges>
</anychart>
第三步,Labels和Tickmarks,Labels是文字提示,可以自定义文字信息显示在刻度上,而minor_tickmark如果设置enabled为false则表示不显示详细的小刻度。
<axis radius="50" start_angle="90" sweep_angle="180">
<scale minimum="0" maximum="120" major_interval="20" minor_interval="5" />
<labels enabled="true">
<font bold="true" />
<format>{%Value}{numDecimals:0} mph</format>
</labels>
<minor_tickmark enabled="false" />
</axis>
第四步,设置颜色Color Ranges,如下代码设置了三种颜色,0到40刻度绿色、40到80黄色、80到120红色。
<axis radius="50" start_angle="90" sweep_angle="180">
<scale minimum="0" maximum="120" major_interval="20" minor_interval="5" />
<scale_bar enabled="false" />
<labels enabled="true">
<font bold="true" />
<format>{%Value}{numDecimals:0} mph</format>
</labels>
<minor_tickmark enabled="false" />
<color_ranges>
<color_range start="0" end="40" color="Green" />
<color_range start="40" end="80" color="Yellow" />
<color_range start="80" end="120" color="Red" />
</color_ranges>
</axis>
下一步按照文档来说,应该是设置marker的,但是我觉得作用不大,就跳过了。
第五步,设置指针值Pointer
仪表图的刻度有了,那么自然需要有指针来显示仪表的值,这时就需要pointer标签了,pointer标签的属性大家一看应该都懂。
<?xml version="1.0" encoding="UTF-8"?>
<anychart>
<gauges>
<gauge>
<circular>
<pointers>
<pointer type="bar" value="35" color="Gray" />
</pointers>
</circular>
</gauge>
</gauges>
</anychart>
只要实现以上五步,一个基本的仪表图就出来了。以上内容摘自官方 帮助文档 ,大家可以到那里去了解更详细的内容。
最后介绍两个增值功能:动画效果和穿透事件。
AnyChart支持图表指针pointer的动画,你只需要在pointer标签中设置动画标签即可,想了解更多,请参见 官方文档
<pointer type="Needle" value="70">
<animation enabled="true" start_time="0" duration="3" />
</pointer>
仪表图也支持穿透事件,穿透点是pointer指针,开发定义好event事件之后即可点击指针进行穿透操作,不过因为仪表图不像常规图那样有id属性,所以我将穿透的URL定义在name上面同样很好用:e.data.name

