前 言
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/
