大数据时代的3个图表可视化利器
还记得阿里巴巴那个令人澎湃激情的双十一吗?还记得淘宝生动形象地把你的的消费历程一一地展示给你看吗?还记得那些酷炫拽的it报告图表吗?在这个大数据 越来越盛行的年代,怎样去表达一些用户的关系,人物的关联,甚至是事情的发展,都让我们有更多的表达方式。其中最简单直接,形象明了的就是用图表说明问题 了。
如果在以前,要实现各种图表,可能很多人会选择flash。但是flash成本较高,图表多的时候很耗性能。后来越来越多的纯js框架出现,让大家有了更多的选择。所以接下来我想推荐几个不错的图表js框架给大家用。
1.highcharts
这是一个本人认为很好用,同时很多童鞋在用的一个框架。这个框架的中国社区的童鞋,比较积极地维护和不断更新着好多实例。如果使用这个框架,往往能在丰富的例子找到类似的表达样图。推荐程度4个星啊。截几个图给大家看看。
实用起来也很简单方便,例如你可以这样实现:
[html] view plaincopy
1.
2.
3. <script type="text/javascript" src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script>
4. <script type="text/javascript" src="http://cdn.hcharts.cn/highcharts/4.0.1/highcharts.js"></script>
5. <script>
6. $(function () {
7. $('#container').highcharts({
8. chart: {
9. type: 'column'
10. },
11. title: {
12. text: 'My first Highcharts chart'
13. },
14. xAxis: {
15. categories: ['my', 'first', 'chart']
16. },
17. yAxis: {
18. title: {
19. text: 'something'
20. }
21. },
22. series: [{
23. name: 'Jane',
24. data: [1, 0, 4]
25. }, {
26. name: 'John',
27. data: [5, 7, 3]
28. }]
29. });
30. });
31. </script>
32.
33.
34.
35.
36.
37.
再细节的东西我就不详细说了,只要大家去它的中文网看一下,就一清二楚了。
http://www.hcharts.cn/index.php
2 D3.js
D3.js除了用强大来形容,就不知道怎么去来表达它的厉害之处了。高效,库里面的组件真的眼花缭乱。继续截图。
例子1:
例子2:
例子3:
总而言之,我记得D3.js是有书可以买的。如果能把此框架用好,定能独当一面啊。
想知道详情的可以看官网:http://d3js.org/
3.echarts
echarts不是外国的,是国内百度团队的产物。总所周知,百度统计做得挺不错的。他们这个echarts也算是用到淋漓尽致。社区也算比较活跃,例子也十分多,实用一样方便。
下面还是截图加举例吧。
最后一张截图的js展示:
[javascript] view plaincopy
1. option = {
2. title : {
3. text: '浏览器占比变化',
4. subtext: '纯属虚构',
5. x:'right',
6. y:'bottom'
7. },
8. tooltip : {
9. trigger: 'item',
10. formatter: "{a}
{b} : {c} ({d}%)"
11. },
12. legend: {
13. orient : 'vertical',
14. x : 'left',
15. data:['Chrome','Firefox','Safari','IE9+','IE8-']
16. },
17. toolbox: {
18. show : true,
19. feature : {
20. mark : {show: true},
21. dataView : {show: true, readOnly: false},
22. restore : {show: true},
23. saveAsImage : {show: true}
24. }
25. },
26. calculable : false,
27. series : (function (){
28. var series = [];
29. for (var i = 0; i < 30; i++) {
30. series.push({
31. name:'浏览器(数据纯属虚构)',
32. type:'pie',
33. itemStyle : {normal : {
34. label : {show : i > 28},
35. labelLine : {show : i > 28, length:20}
36. }},
37. radius : [i * 4 + 40, i * 4 + 43],
38. data:[
39. {value: i * 128 + 80, name:'Chrome'},
40. {value: i * 64 + 160, name:'Firefox'},
41. {value: i * 32 + 320, name:'Safari'},
42. {value: i * 16 + 640, name:'IE9+'},
43. {value: i * 8 + 1280, name:'IE8-'}
44. ]
45. })
46. }
47. series[0].markPoint = {
48. symbol:'emptyCircle',
49. symbolSize:series[0].radius[0],
50. effect:{show:true,scaleSize:12,color:'rgba(250,225,50,0.8)',shadowBlur:10,period:30},
51. data:[{x:'50%',y:'50%'}]
52. };
53. return series;
54. })()
55. };
56. setTimeout(function (){
57. var _ZR = myChart.getZrender();
58. var TextShape = require('zrender/shape/Text');
59. // 补充千层饼
60. _ZR.addShape(new TextShape({
61. style : {
62. x : _ZR.getWidth() / 2,
63. y : _ZR.getHeight() / 2,
64. color: '#666',
65. text : '恶梦的过去',
66. textAlign : 'center'
67. }
68. }));
69. _ZR.addShape(new TextShape({
70. style : {
71. x : _ZR.getWidth() / 2 + 200,
72. y : _ZR.getHeight() / 2,
73. brushType:'fill',
74. color: 'orange',
75. text : '美好的未来',
76. textAlign : 'left',
77. textFont:'normal 20px 微软雅黑'
78. }
79. }));
80. _ZR.refresh();
81. }, 2000);