大數據時代的圖表可視化利器——highcharts,D3和百度的echarts

大數據時代的圖表可視化利器——highcharts,D3和百度的echarts

    還記得阿里巴巴那個使人澎湃激情的雙十一嗎?還記得淘寶生動形象地把你的的消費歷程一一地展現給你看嗎?還記得那些酷炫拽的it報告圖表嗎?在這個大數據愈來愈盛行的年代,怎樣去表達一些用戶的關係,人物的關聯,甚至是事情的發展,都讓咱們有更多的表達方式。其中最簡單直接,形象明瞭的就是用圖表說明問題了。
    若是在之前,要實現各類圖表,可能不少人會選擇flash。可是flash成本較高,圖表多的時候很耗性能。後來愈來愈多的純js框架出現,讓你們有了更多的選擇。因此接下來我想推薦幾個不錯的圖表js框架給你們用。

    1.highcharts

    這是一個本人認爲很好用,同時不少童鞋在用的一個框架。這個框架的中國社區的童鞋,比較積極地維護和不斷更新着好多實例。若是使用這個框架,每每能在豐富的例子找到相似的表達樣圖。推薦程度4個星啊。截幾個圖給你們看看。
    
 
 
 
實用起來也很簡單方便,例如你能夠這樣實現:
[html]  view plain  copy
  1. <html>  
  2. <head>  
  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. </head>  
  33.       
  34. <body>  
  35.    <div id="container" style="min-width:800px;height:400px;"></div>  
  36. </body>  
  37. </html>  
 
再細節的東西我就不詳細說了,只要你們去它的中文網看一下,就一清二楚了。
    D3.js除了用強大來形容,就不知道怎麼去來表達它的厲害之處了。高效,庫裏面的組件真的眼花繚亂。繼續截圖。
 
例子1:
 
例子2:
 
    
 
例子3:
 
總而言之,我記得D3.js是有書能夠買的。若是能把此框架用好,定能獨當一面啊。
想知道詳情的能夠看官網: http://d3js.org/
 

3.echarts

echarts不是外國的,是國內百度團隊的產物。總所周知,百度統計作得挺不錯的。他們這個echarts也算是用到淋漓盡致。社區也算比較活躍,例子也十分多,實用同樣方便。
下面仍是截圖加舉例吧。
 
最後一張截圖的js展現:
 
[javascript]  view plain  copy
  1. option = {  
  2.     title : {  
  3.         text: '瀏覽器佔比變化',  
  4.         subtext: '純屬虛構',  
  5.         x:'right',  
  6.         y:'bottom'  
  7.     },  
  8.     tooltip : {  
  9.         trigger: 'item',  
  10.         formatter: "{a} <br/>{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);  
 
這個框架的參考網址是:  http://echarts.baidu.com/index.html
 
若是沒有用過圖表表達數據和關係的話,就趕快試試這3款好用的框架吧。
相關文章
相關標籤/搜索