1. 程式人生 > >使用chart和echarts制作圖表

使用chart和echarts制作圖表

step 方案 href strong chat -1 eat ech 便是

前 言

chart.js是一個簡單、面向對象、為設計者和開發者準備的圖表繪制工具庫。它可以幫你用不同的方式讓你的數據變得可視化。每種類型的圖表都有動畫效果,並且看上去非常棒,即便是在retina屏幕上。Chart.js基於HTML5 canvas技術,支持所有現代瀏覽器,並且針對IE7/8提供了降級替代方案。並且它不依賴任何外部工具庫,輕量級(壓縮之後僅有4.5k),並且提供了加載外部參數的方法。

ECharts,一個純 Javascript 的圖表庫,可以流暢的運行在 PC 和移動設備上,兼容當前絕大部分瀏覽器(IE8/9/10/11,Chrome,Firefox,Safari等),底層依賴輕量級的 Canvas 類庫 ZRender,提供直觀,生動,可交互,可高度個性化定制的數據可視化圖表。


1.使用chart制作的六種圖表類型

技術分享①曲線圖(Line charts)

技術分享②柱狀圖(Bar charts)

技術分享 ③雷達圖或蛛網圖(Radar charts)

技術分享 ④餅圖(Pie charts)

技術分享 ⑤極地區域圖(Polar area charts)

技術分享 ⑥環形圖(Doughnut charts)

2. 起步

引入Chart.js文件

首先我們需要在頁面中引入Chart.js文件。此工具庫在全局命名空間中定義了Chart

變量。

<script src="Chart.js"></script>

創建圖表

為了創建圖表,我們要實例化一個Chart對象。為了完成前面的步驟,首先需要需要傳入一個繪制圖表的2d context。

html:

<div style="width: 500px;height: 400px;">
    <canvas id="myChart"></canvas>
</div>

javascript:

var ctx= document.getElementById("myChart").getContext("2d");
var myBarChart = new Chart(ctx{type:‘horizontalBar‘,data:barChartData,options:options}); //type指定了你要繪制的圖表類型----bar:柱狀圖 pie:餅狀圖 rabar:雷達圖 horizontalBar:水平柱狀圖

當我們完成了在指定的canvas上實例化Chart對象之後,Chart.js會自動針對retina屏幕做縮放。

Chart對象設置完成後,我們就可以繼續創建Chart.js中提供的具體類型的圖表了。以下的案例,我們將展示如何繪制一張水平柱狀圖。

在javascript中設置數據和參數:

var barChartData = {
            labels:["可愛","善良","睿智","迷人","樂觀"],
            datasets:[{
                label:"小小",//圖例
                fillColor:"rgba(255,99,132,0.5)",//背景填充色
                strokeColor:"rgba(220,220,220,1)",//路徑顏色
                pointBorderColor:"#CF64A7",//描點顏色
                pointBackgroundColor:"rgba(255,0,0,0.8)",//描點的背景色
                backgroundColor:[
                ‘rgba(1,1,1,0.2)‘,
                ‘rgba(1,40,40,0.2)‘,
                ‘rgba(80,1,50,0.2)‘,
                ‘rgba(1,200,1,0.2)‘,
                ‘rgba(200,1,1,0.2)‘
                ],
                data:[100,90,96,94,90]
            }]
        };

設置選項:

var options={
      events:[‘click‘],
      scale:{
      ticks:{
      beginAtzero:true,
      stepSize:20,//y軸間距
      max:100,//y軸最大值
      min:0,//y軸最小值
                    
    //y軸格式化
    callback :function(value){return value+‘%‘}
    },
    pointLables:{
        fontSize:13
    }
    }
}

結果如下:

技術分享

三、Echarts的使用

ECharts 提供了常規的折線圖,柱狀圖,散點圖,餅圖,K線圖,用於統計的盒形圖,用於地理數據可視化的地圖,熱力圖,線圖,用於關系數據可視化的關系圖,treemap,多維數據可視化的平行坐標,還有用於 BI 的漏鬥圖,儀表盤,並且支持圖與圖之間的混搭。

你可以在下載界面下載包含所有圖表的構建文件,如果只是需要其中一兩個圖表,又嫌包含所有圖表的構建文件太大,也可以在在線構建中選擇需要的圖表類型後自定義構建。

下面案例,以制作餅狀圖為例:

html:

<div id="main" style="width: 800px;height: 400px;"></div>

javascript:

<script type="text/javascript">
       var myChart = echarts.init(document.getElementById("main"));
       var option = {
         title:{
         text:"餅狀圖",
         subtext:"純屬虛構",
         x:"center"
         },
         series:[{
         type:"pie",
         name:"訪問來源",
         data:[{
         value:335,
         name:"直接訪問"
        },
        {
        value:310,
        name:"郵件營銷"
        },
        {
        value:234,
        name:"聯盟廣告"
        },
        {
        value:555,
        name:"視頻廣告"
        },
        {
        value:1235,
        name:"搜索引擎"
        },],
        center:["50%","60%"],//圓心坐標
        radius:"55%"         //遠的半徑
        }],
        tooltip:{  //提示框
           trigger:"item",      //觸發類型
           formatter:"{a}<br>{b}:{c} ({d}%)" ,//鼠標指上時顯示的數據a:系列名稱     b:類目值     c:數值      d:占的百分比
           backgroundColor:"rgba(0,0,0,0.7)" //提示框的背景色,默認為透明度為0.7的黑色
        },
        legend:{
           orient:"vertical",
           x:"left",
           data:[‘直接訪問‘,‘郵件營銷‘,‘聯盟廣告‘,‘視頻廣告‘,‘搜索引擎‘]
        },
       toolbox:{        //工具箱
          show:true,
          feature:{       //啟用功能
             dataView:{
                  show:true,
                  readOnly:false  //readOnly默認數據視圖為可讀,可指定readOnly為false打開編輯功能
             },
            restore:{   //還原,復位原始圖表
                 show:true,  
            },
            saveAsImage:{
                show:true,
                type:"jpeg",//默認為png,可以改為jpeg
                title:"保存圖片"
           }
        }
     }
 }
    myChart.setOption(option);
</script>

結果如下圖:

技術分享

這是chart和echarts制作餅狀圖的簡單使用,具體可在chart和echarts官網中查看。

chart中文文檔:http://www.bootcss.com/p/chart.js/docs/

echatrs官網:http://echarts.baidu.com/

使用chart和echarts制作圖表