echart 入门教程 http://www.imooc.com/view/687
一.浏览器画图原理简介
1.Canvas
基于像素,单个html,类似于画笔在画布上画画,详情可见html5中的canvas介绍。Echarts基于canvas画图。
以下是一个canvas的简单例子,html中
<!-- 添加canvas标签,并加上红色边框以便于在页面上查看 -->
<canvas id="myCanvas" width="400px" height="300px">
您的浏览器不支持canvas标签。
</canvas>
js中
//获取Canvas对象(画布)
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
//开始一个新的绘制路径
ctx.beginPath();
//设置弧线的颜色为蓝色
ctx.strokeStyle = "blue";
var circle = {
x : 100, //圆心的x轴坐标值
y : 100, //圆心的y轴坐标值
r : 50 //圆的半径
};
//沿着坐标点(100,100)为圆心、半径为50px的圆的顺时针方向绘制弧线
ctx.arc(circle.x, circle.y, circle.r, 0, Math.PI * 2, false);
//按照指定的路径绘制弧线
ctx.stroke();
运行结果:
![](https://img.haomeiwen.com/i9813501/31943377f3d27ed0.png)
2.Svg
基于对象模型,多个图形元素,高保真
svg例子
<svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<!-- circle是圆形标签 -->
<circle cx="70" cy="50" r="40" stroke="black"
stroke-width="2" fill="red"/>
<!-- rect是长方形标签 -->
<rect x='120' width="100" height="100"
style="fill:rgb(0,0,255);stroke-width:1;
stroke:rgb(0,0,0)"/>
</svg>
运行结果:
![](https://img.haomeiwen.com/i9813501/143afb62378e84d3.png)
常见图形组件
- 标题、工具栏、图例、提示框
- 坐标轴:x轴、y轴
echart官网上主要看看它的配置项手册,它对每一个参数都做了详细的描述
http://www.echartsjs.com/option.html#title
![](https://img.haomeiwen.com/i9813501/32d2514b762ea1ff.png)
还有它的官方实例 http://www.echartsjs.com/examples/
![](https://img.haomeiwen.com/i9813501/3a4b14b46c96a440.png)
二.Echarts 库简介
1.简单的柱状图,折线图示例
在http://www.echartsjs.com/download.html链接里下载完整版,echats.min.js,然后引入到html文件中就可以使用了,以下是一个简单的直方图例子。
在绘图前我们需要为 ECharts 准备一个具备高宽的 DOM 容器。然后就可以通过 echarts.init 方法初始化一个 echarts 实例并通过 setOption 方法生成一个简单的柱状图
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>bar</title>
<!-- 引入 echarts.js -->
<script src="../echarts.min.js"></script>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width: 900px;height:600px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
// 标题
title: {
text: 'ECharts 入门示例'
},
// 工具箱
toolbox: {
show: true,
feature: {
saveAsImage: {
show: true
}
}
},
// 图例
legend: {
data: ['销量']
},
// x轴
xAxis: {
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
},
yAxis: {},
// 数据
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>
运行结果:
![](https://img.haomeiwen.com/i9813501/6fd8cbe808a2b27e.png)
以下是一个简单的折线图例子
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>line</title>
<!-- 引入 echarts.js -->
<script src="../echarts.min.js"></script>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width: 900px;height:600px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: 'ECharts 入门示例'
},
toolbox: {
show: true,
feature: {
saveAsImage: {
show: true
}
}
},
legend: {
data: ['销量']
},
xAxis: {
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
},{
name: '产量',
type: 'line',
data: [7, 30, 50, 11, 40, 80]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>
![](https://img.haomeiwen.com/i9813501/146425724284ce9a.png)
标题组件title
http://www.echartsjs.com/option.html#title
标题负责显示整个图表的标题,主要配置option下的title
title: {
show:true,
text: 'ECharts 入门示例', //标题文字
subtext:'学习ECharts就来慕课网', //子标题
left:'right', //标题位置( 数字就是像素值 ,也可以是 center left right这种值)
borderColor:'red', //边框颜色
borderWidth:5, //边框宽度
textStyle:{
fontSize:40
}
},
![](https://img.haomeiwen.com/i9813501/43e7825409ce0dcc.png)
工具箱组件
http://www.echartsjs.com/option.html#toolbox
组件的工具栏
toolbox: {
show: true, //是否显示
feature: {
dataView:{
show:true
}, //数据视图
restore:{
show:true
}, //还原
dataZoom:{
show:true
}, //缩放视图
saveAsImage: {
show: true
}, //保存图片
magicType: {
type: ['line', 'bar']
} //动态类型切换
}//具体需要显示的功能
},
![](https://img.haomeiwen.com/i9813501/dab7b38f87b06aa8.png)
弹窗组件
http://www.echartsjs.com/option.html#tooltip
tooltip: {
show:true, //是否显示
trigger: 'axis' //触发类型为x轴触发
},
![](https://img.haomeiwen.com/i9813501/46c803f12bba35f2.png)
标记线和标记点markline markpoint
http://www.echartsjs.com/option.html#series-line.markLine
最大值,最小值 平均值的标记线
series: [{
name: '销量',
type: 'line',
data: [5, 20, 36, 10, 10, 20],
markPoint: {
data: [
{type: 'max', name: '最大值'},
{type: 'min', name: '最小值',symbol:'arrow'}
]
},
markLine: {
data: [
{type: 'average', name: '平均值'}
]
}
}]
![](https://img.haomeiwen.com/i9813501/5b59931dd22fc34c.png)
三.Echar常用图
饼图
以下略。。。
四.Echart中级使用
多个坐标轴
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
option = {
tooltip: {
trigger: 'axis'
},
toolbox: {
feature: {
dataView: {show: true, readOnly: false},
magicType: {show: true, type: ['line', 'bar']},
restore: {show: true},
saveAsImage: {show: true}
}
},
legend: {
data:['蒸发量','降水量','平均温度']
},
xAxis: [
{
type: 'category',
data: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
}
],
yAxis: [
{
type: 'value',
name: '水量',
min: 0,
max: 250,
interval: 50,
axisLabel: {
formatter: '{value} ml'
}
},
{
type: 'value',
name: '温度',
min: 0,
max: 25,
interval: 5,
axisLabel: {
formatter: '{value} °C'
}
}
],
series: [
{
name:'蒸发量',
type:'bar',
data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
},
{
name:'降水量',
type:'bar',
data:[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
},
{
name:'平均温度',
type:'line',
yAxisIndex: 1,
data:[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
![](https://img.haomeiwen.com/i9813501/93ad646568b05c38.png)
网友评论