为了账号安全,请及时绑定邮箱和手机立即绑定

复合图表(CompositeChart)

标签:
JQuery

Wijmo的CompositeChart控件允许您使用一个Chart来分析和展现复杂的数据。相同的数据可以使用不同的可视化效果,不同的图表类型展现在一个图表内,使得用户可以从不同的角度,了解分析这组数据所表达的内容 。

本文将介绍如何使用Wijmo的CompositeChart控件,制作一个复合图表。CompositeChart 的API:http://wijmo.com/wiki/index.php/Compositechart,Wijmo 的CompositeChart 化繁为简,将传统 Excel like图表中的三大区域: Plot Area, Legend Area, Label Area, 分离成为更为简单的API: SeriesList, Legend, Axis, Hint, 使得开发者更加容易的理解和使用。

Wijmo的CompositeChart 依赖于下面的这5个核心的JavaScript库:

raphael.js

globalize.min.js

jquery.ui.widget.js

jquery.wijmo.raphael.js

jquery.wijmo.wijchartcore.js

如果需要加入别的类型的Chart,需要再引入其它Chart类型的JavaScript库,这样可以使得开发者可以灵活定制并裁剪出适合自己用例的JavaScript库。例如本实例使用了 PieChart, BarChart, LineChart, 引入的JavaScript库如下:

jquery-1.7.1.min.js

jquery-ui-1.8.18.custom.min.js

globalize.min.js

raphael-min.js

jquery.wijmo.raphael.js

jquery.wijmo.wijchartcore.js

jquery.wijmo.wijbarchart.js

jquery.wijmo.wijpiechart.js

jquery.wijmo.wijlinechart.js

jquery.wijmo.wijcompositechart.js

写点代码,设置一下Chart :

复制代码

$(document).ready(function () {$("#wijcompositechart").wijcompositechart({axis: {y: {text: "Total Hardware"},x: {text: ""}},stacked: false,hint: {content: function () {return this.label + '\n ' + this.y + '';}},header: {text: "Hardware Distribution"},seriesList: [{type: "column",label: "West",legendEntry: true,data: { x: ['Desktops', 'Notebooks', 'AIO', 'Tablets', 'Phones'], y: [5, 3, 4, 7, 2] }}, {type: "column",label: "Central",legendEntry: true,data: { x: ['Desktops', 'Notebooks', 'AIO', 'Tablets', 'Phones'], y: [2, 2, 3, 2, 1] }}, {type: "column",label: "East",legendEntry: true,data: { x: ['Desktops', 'Notebooks', 'AIO', 'Tablets', 'Phones'], y: [3, 4, 4, 2, 5] }}, {type: "pie",label: "asdfdsfdsf",legendEntry: true,center: { x: 150, y: 150 },radius: 60,data: [{label: "MacBook Pro",legendEntry: true,data: 46.78,offset: 15}, {label: "iMac",legendEntry: true,data: 23.18,offset: 0}, {label: "MacBook",legendEntry: true,data: 20.25,offset: 0}]}, {type: "line",label: "Steam1",legendEntry: true,data: {x: ['Desktops', 'Notebooks', 'AIO', 'Tablets', 'Phones'],y: [3, 6, 2, 9, 5]},markers: {visible: true,type: "circle"}}, {type: "line",label: "Steam2",legendEntry: true,data: {x: ['Desktops', 'Notebooks', 'AIO', 'Tablets', 'Phones'],y: [1, 3, 4, 7, 2]},markers: {visible: true,type: "tri"}}]});});

复制代码

 

代码不多,就有了下图的效果:


代码不多,很好分析:

复制代码

--axis: {y: {text: "Total Hardware"},x: {text: ""}--设置X,Y 轴。---stacked: false---设置Bar 为非stacked.---hint: {content: function () {return this.label + '\n ' + this.y + '';}},---设置鼠标 Tooltip.---header: {text: "Hardware Distribution"},---设置图表头.----seriesList: [{type: "column",label: "West",legendEntry: true,data: { x: ['Desktops', 'Notebooks', 'AIO', 'Tablets', 'Phones'], y: [5, 3, 4, 7, 2] }}, {type: "column",label: "Central",legendEntry: true,data: { x: ['Desktops', 'Notebooks', 'AIO', 'Tablets', 'Phones'], y: [2, 2, 3, 2, 1] }}, {type: "column",label: "East",legendEntry: true,data: { x: ['Desktops', 'Notebooks', 'AIO', 'Tablets', 'Phones'], y: [3, 4, 4, 2, 5] }}, {type: "pie",label: "asdfdsfdsf",legendEntry: true,center: { x: 150, y: 150 },radius: 60,data: [{label: "MacBook Pro",legendEntry: true,data: 46.78,offset: 15}, {label: "iMac",legendEntry: true,data: 23.18,offset: 0}, {label: "MacBook",legendEntry: true,data: 20.25,offset: 0}]}, {type: "line",label: "Steam1",legendEntry: true,data: {x: ['Desktops', 'Notebooks', 'AIO', 'Tablets', 'Phones'],y: [3, 6, 2, 9, 5]},markers: {visible: true,type: "circle"}}, {type: "line",label: "Steam2",legendEntry: true,data: {x: ['Desktops', 'Notebooks', 'AIO', 'Tablets', 'Phones'],y: [1, 3, 4, 7, 2]},markers: {visible: true,type: "tri"}}]

复制代码

 

----

设置 SeriesList,每个Series 可以设置其type, label, legendEntry, data, 等等属性。 Series可以设置 SeriesStyles, 和 SeriesHoverStyles, 如:

复制代码

seriesStyles: [{fill: "#8ede43", stroke: "#7fc73c", opacity: 0.8}],seriesHoverStyles: [{"stroke-width": "1.5", opacity: 1}]

复制代码

 

经过上面的设置,这个CompositeChart就设置好了。也可以使用Server返回的 Json 数据动态绑定生成Chart。

 


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消