Canvas图表插件
推荐三种比较好用的。
- chart.js 灵活、可个性化设置图表样式的js图表插件
- chartist.js 配置简单,只需要设置数据即可,包是最小的。
- HighCharts.js 浏览器兼容性最强(有中文文档)
一、chart.js
chart.js是简单而灵活的javascript图表插件,底层封装了canvas,而且是复合目前主流的响应式。
官网下载chart.js
进入官网: http://www.chartjs.org
选择版本
dist下的就是chart.js脚本
Chart.js有两种不同的版本。常规版本的Chart.js和 Chart.min.js,附带chart.js库的同时还带着颜色解析器。如果你想使用这个版本并且在你的图表中使用时间轴,你需要在安装Chart.js之前安装上Moment.js。
而另一个版本Chart.bundle.js 和Chart.bundle.min.js早就包含了Moment.js 。你唯一需要注意的就是两个版本只能安装一个,否则会引起错误。
1.创建一个简单的图表
chart.js目前有两种版本1.0
版本和2.0
版本,两个版本创建图表的方式有区别。以下使用的是chart.js的2.0版本。
2.0版本
该方式是2.0版本新增的方式。
有4种方式获取
<canvas>
元素,任意一种都行,建议使用第二种。
var ctx = document.getElementById("myChart"); //dom
var ctx = document.getElementById("myChart").getContext("2d"); //dom
var ctx = $("#myChart"); //jquery
var ctx = "myChart"; //建议不要使用
使用chart.js
<canvas id="myChart" width="400" height="400"></canvas>
<script>
var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx, {
type: 'bar', //图片类型
data: {
}, //数据和样式
options: {
} //图表的配置
});
</script>
1.0版本
该方式是1.0版本的创建方法,在2.0版本中也可以使用。
<canvas id="myChart" width="400" height="400"></canvas>
<script>
var ctx = document.getElementById("myChart");
var myChart = Chart.bar(ctx, {
data: {
}, //图表数据和样式
options: {
} //图表的配置
});
</script>
- bar 只是图表的类型,也就是2.0版本中的type
2.图表
chart.js提供了图表类型中常用的几种:
- line 折线图
- bar 柱状图
- radar 雷达图
- doughnut 环状图
- pie 饼状图
- polarArea 极地区域图
- bubble 气泡图
- 混合图
(1)line 折线图
var ctx = document.getElementById('canvas').getContext('2d');
var chart = new Chart(ctx,{
type: 'line',
data:{
labels: ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],
datasets: [
{
label: '红线',
data: [65,21,34,67,56,12,54,78,90,10,12,76],
borderColor: 'rgba(255,0,0,1)',
backgroundColor: 'rgba(255,0,0,0.5)',
fill: false,
lineTension: 0,
},
{
label: '蓝线',
data: [34,80,29,76,23,89,12,67,77,12,94,45],
borderColor: 'rgba(75,193,193,1)',
backgroundColor: 'rgba(75,193,193,1)',
fill: false,
lineTension: 0,
}
],
},
options:{
}
});
dataset中常用的属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>折线图</title>
<script src="https://cdn.bootcss.com/Chart.js/2.5.0/Chart.js"></script>
</head>
<body>
<canvas id="myChart"></canvas>
<script>
var ctx = document.getElementById("myChart").getContext("2d");
// 设置数据内容
var data = {
// 设置图表中水平轴显示的内容
labels: ["January", "February", "March",