今天给大家带来的是Anychart各种图的介绍,主要是教大家如何配出自己需要的图形出来。
- 柱状图(Column Chart)
柱状图是项目中最常用的图形之一,他的指标在X轴方向,每个指标对应的值在Y轴,Anychart的柱状图支持2D和3D效果。【官方参考文档】
如下代码片段,是一个简单的柱状图的XML配置,要生成一个柱状图,你就必须配置<chart>的plot_type属性为"CategorizedVertical",并且要配置<data_plot_settings>标签的属性default_series_type为"Bar",这样整个图就是柱状了。
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="CategorizedVertical"> <data_plot_settings default_series_type="Bar"> <bar_series> <tooltip_settings enabled="True" /> </bar_series> </data_plot_settings> <data> <series name="Quarter 1"> <point name="John" y="10000" /> <point name="Jake" y="12000" /> <point name="Peter" y="18000" /> <point name="James" y="11000" /> <point name="Mary" y="9000" /> </series> </data> </chart> </charts> </anychart>
- 条形图(Bar Chart)
条形图其实是柱状图旋转后的效果,指标在Y轴了,而数据在X轴,同时条形图也支持2D和3D效果。【官方参考文档】
条形图的配置与柱状图也非常类似,你只需要把柱状图的plot_type属性修改为"CategorizedHorizontal"即可显示成条形图。
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="CategorizedHorizontal"> <data_plot_settings default_series_type="Bar"> <bar_series> <tooltip_settings enabled="True" /> </bar_series> </data_plot_settings> <data> <series name="Quarter 1"> <point name="John" y="10000" /> <point name="Jake" y="12000" /> <point name="Peter" y="18000" /> <point name="James" y="11000" /> <point name="Mary" y="9000" /> </series> </data> </chart> </charts> </anychart>
- 线形图(Line Chart)
线形图分折线图和曲线图,常用于数据发展趋势分析【官方参考文档】
看下面的代码片段,这是配置折线图的方法,你就必须配置<chart>的plot_type属性为"CategorizedVertical",并且要配置<data_plot_settings>标签的属性default_series_type为"Line",这样整个图就是折线图了。那么如果你将plot_type属性设置成"CategorizedHorizontal",结果也是折线,只是折线的指标在Y轴,而数据在X轴了。
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="CategorizedVertical"> <data_plot_settings default_series_type="Line" /> <data> <series name="2004 Sales"> <point name="January" y="12000" /> <point name="February" y="15000" /> <point name="March" y="16000" /> <point name="April" y="15000" /> <point name="May" y="14000" /> </series> </data> </chart> </charts> </anychart>
曲线图与折线图配置类似,只需要将default_series_type属性修改为"Spline"即可,看下面代码
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="CategorizedVertical"> <data_plot_settings default_series_type="Spline" /> <data> <series name="2004 Sales"> <point name="January" y="12000" /> <point name="February" y="15000" /> <point name="March" y="16000" /> <point name="April" y="15000" /> <point name="May" y="14000" /> </series> </data> </chart> </charts> </anychart>
- 饼图和圆环图(Pie and Donut Chart)
饼状图在项目中应用也很广泛,主要用于展示指标占用比例,Anychart的饼图也支持2D和3D两种。【官方参考文档】
饼图的代码如下,不同于前面几种图,饼状图只需要配置<chart>的plot_type属性为"Pie"即可。
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="Pie"> <data> <series name="Year 2003" > <point name="Department Stores" y="637166" /> <point name="Discount Stores" y="721630" /> <point name="Men's/Women's Specialty Stores" y="148662" /> <point name="Juvenile Specialty Stores" y="78662" /> <point name="All other outlets" y="90000" /> </series> </data> </chart> </charts> </anychart>
圆环图也是非常简单,只需要配置<chart>的plot_type属性为"Doughnut"即可
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="Doughnut"> <data> <series name="Year 2003" > <point name="Department Stores" y="637166" /> <point name="Discount Stores" y="721630" /> <point name="Men's/Women's Specialty Stores" y="148662" /> <point name="Juvenile Specialty Stores" y="78662" /> <point name="All other outlets" y="90000" /> </series> </data> </chart> </charts> </anychart>
介绍饼状图的一个特殊功能:Exploded Slices。饼图默认如果被点击的话,被点击的部分会伸出来突出显示。而且你也可以设置图形显示时默认突出显示哪一块或哪几块。
如下面的代码,我设置了point name为Department开头的和All开头的两个指标属性exploded为"true",那么结果就是渲染饼图后,这两个被设置的指标突出向外显示了。
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="Pie"> <data> <series name="Year 2003" > <point name="Department Stores" y="637166" exploded="True"/> <point name="Discount Stores" y="721630" /> <point name="Men's/Women's Specialty Stores" y="148662" /> <point name="Juvenile Specialty Stores" y="78662" /> <point name="All other outlets" y="90000" exploded="True"/> </series> </data> </chart> </charts> </anychart>
不过Anychart的饼图突出显示有一个不满意的地方就是你选择了一块突出显示后,再选择别的指标,原来被选择的指标不会自动收回。
另外有的用户不希望点击饼图时突出显示,则需要配置一个<pie_series>标签并且设置explode_on_click属性为"Flase"即可。另外explode属性是指突出显示多远,值越大突出显示得越远。
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="Pie"> <data> <series name="Year 2003" palette="Default"> <point name="Department Stores" y="637166" /> <point name="Discount Stores" y="721630" /> <point name="Men's/Women's Specialty Stores" y="148662"/> <point name="Juvenile Specialty Stores" y="78662"/> <point name="All other outlets" y="90000" /> </series> </data> <data_plot_settings> <pie_series sort="Desc" explode_on_click="False" explode="10"/> </data_plot_settings> </chart> </charts> </anychart>
- 标记图(Marker Chart)
标记图其实是指图上打小点这样的标记而组成的图,我的项目里用过一次,用于表示不同时间段用户登录次数和在线时长的。【官方参考文档】
废话不多说,先上XML,看下面的代码:其中<marker_series>是可以不用写的,这里写了就给大家做个解释,<marker>的size属性表示标志在图上的默认大小,而<hover>下面的marker size是标识鼠标移动到标志上时标志显示的大小,下面代码从10变成20有一种放大的效果。
而设置标志图的代码也只有两块,一块是设置plot_type另一块是设置default_series_type为"Marker"即可。
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="CategorizedVertical"> <data_plot_settings default_series_type="Marker"> <marker_series> <marker_style> <marker size="10" /> <states> <hover> <marker size="20" /> </hover> </states> </marker_style> </marker_series> </data_plot_settings> <data> <series name="ACME"> <point name="2000" y="1100" /> <point name="2001" y="880" /> <point name="2002" y="1100" /> <point name="2003" y="1500" /> <point name="2004" y="921" /> <point name="2005" y="1000" /> <point name="2006" y="1400" /> </series> </data> </chart> </charts> </anychart>
- 面积图(Area Chart)
面积图的配置与前面的也是非常类似的,除了配置plog_type以外,再配置default_series_type即可,如下所示。【官方参考文档】
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="CategorizedVertical"> <data_plot_settings default_series_type="Area" /> <data> <series name="2004 Sales"> <point name="January" y="12000" /> <point name="February" y="15000" /> <point name="March" y="16000" /> <point name="April" y="15000" /> <point name="May" y="14000" /> </series> </data> </chart> </charts> </anychart>
- 雷达图(Radar Chart)
雷达图的应用场景通常是统计某个人的多维能力值,通过雷达图能很形象看出这个人的擅长和需要弥补的地方。【官方参考文档】
雷达图的配置也是非常简单,用户只需要配置<chart>标签的plot_type属性为Radar即可
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="Radar"> <data> <series name="Spendings"> <point name="Administration" y="22" /> <point name="Sales" y="34" /> <point name="Marketing" y="16" /> <point name="Research" y="12" /> <point name="Support" y="38" /> <point name="Development" y="47" /> </series> </data> </chart> </charts> </anychart>
雷达图有很多种样式,雷达图点与点之间是通过直接连接的,如果希望以曲线连接则需要设置<radar>标签的 use_polar_coords属性为"true",如下代码
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="Radar"> <data> <series name="Spendings"> <point name="Administration" y="22" /> <point name="Sales" y="34" /> <point name="Marketing" y="16" /> <point name="Research" y="12" /> <point name="Support" y="38" /> <point name="Development" y="47" /> </series> </data> <data_plot_settings> <radar use_polar_coords="true" /> </data_plot_settings> </chart> </charts> </anychart>
那么如果你希望你的雷达图中的连线像面积图那样显示,那么可以像下面这样在<series>标签增加一个type属性"Area"
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="Radar"> <data> <series name="Spendings" type="Area"> <point name="Administration" y="22" /> <point name="Sales" y="34" /> <point name="Marketing" y="16" /> <point name="Research" y="12" /> <point name="Support" y="38" /> <point name="Development" y="47" /> </series> </data> </chart> </charts> </anychart>
当然,Anychart的雷达图支持的效果不止这些,如果需要更多的样式,请参见官方的帮助文档
堆叠图(柱状为例)(Stacked Bar/Column Chart)
Anychart支持柱状的堆叠和面积图的堆叠,这里就只介绍柱状的堆叠,面积的堆叠与之类似。当然也可以参见官方的帮助文档:【柱状堆叠图】【面积堆叠图】
下面是一个简单的堆叠图,需要注意的是堆叠图比如是存在多个series的,每个series你可以当作一组分类,每个series下的point指标数量都是相同的,并且他们的name一一对应,最后你看到的效果就会是相同name的指标堆叠在一起了。
柱状堆叠图与常规的柱状图唯一的区别就是在<y_axis>标签下有一个<scale mode="Stacked" />,这个标签决定了柱状图是以堆叠还是以常规显示。
<?xml version="1.0" encoding="UTF-8"?> <anychart> <charts> <chart plot_type="CategorizedVertical"> <data_plot_settings default_series_type="Bar"/> <data> <series name="Ice Cream"> <point name="Winter" y="12000" /> <point name="Spring" y="13000" /> <point name="Summer" y="25000" /> <point name="Autumn" y="16000" /> </series> <series name="Chocolate Bars"> <point name="Winter" y="12000" /> <point name="Spring" y="12000" /> <point name="Summer" y="15000" /> <point name="Autumn" y="16000" /> </series> <series name="Coke"> <point name="Winter" y="10000" /> <point name="Spring" y="17000" /> <point name="Summer" y="19000" /> <point name="Autumn" y="16000" /> </series> </data> <chart_settings> <axes> <y_axis> <scale mode="Stacked" /> </y_axis> </axes> </chart_settings> </chart> </charts> </anychart>
最后我们看相同data的情况下,堆叠图和常规柱状图的效果:
- 结束总结
Anychart的图类型是比较丰富的,本篇只介绍了几种常用的图,并且也只是简单介绍了如何配置他们,如果想了解更多的图类型,大家可自行从官方文档中去了解学习。
上面的XML例子是最最简单的情况下的效果,大家会发现图中没有自定义的标题、没有冒泡提示、没有图例等,别担心,后续我会慢慢与大家分享。