安装
1、npm install echarts --save
2、引入echarts的两种方式
页面直接引入文件: <script src="echarts.min.js"></script>
webpack: import echarts from 'echarts'
3、页面创建DOM的容器
<div id="main" style="width: 600px;height:400px;"></div> 必须要一个高度值
异步数据加载和更新
1、数据异步
将数据通过ajax异步取到后,在通过setOption()方式直接加到载插件中
2、loading动画
showLoading()来显示、hideLoading()隐藏
Exampole
var myChart = echarts.init(document.getElementById('main'));
myChart.showLoading();
$.ajax({
success:function(data){
myChart.hideLoading();
}
})
3、数据的动态更新
只需要加单个数据,先data.push(vlaue), 在通过setOption()将数据渲染出来
var data = []; // 存储数据
// 创建图表将data数据加入
....
// 添加数据
function addData(){
data.push(Math.random()*100);
}
setInterval(function(){
addData();
myChart.setOption({
数据
})
},1000)
数据区缩放组件 dataZoom
option = {
xAxis: {
type: 'value'
},
yAxis: {
type: 'value'
},
dataZoom: [
{ // 这个dataZoom组件,默认控制x轴。
type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
start: 10, // 左边在 10% 的位置。
end: 60 // 右边在 60% 的位置。
}
],
series: [
{
type: 'scatter', // 这是个『散点图』
itemStyle: {
normal: {
opacity: 0.8
}
},
symbolSize: function (val) {
return val[2] * 40;
},
data: [["14.616","7.241","0.896"],["3.958","5.701","0.955"],["2.768","8.971","0.669"],["9.051","9.710","0.171"],["14.046","4.182","0.536"],["12.295","1.429","0.962"],["4.417","8.167","0.113"],["0.492","4.771","0.785"],["7.632","2.605","0.645"],["14.242","5.042","0.368"]]
}
]
}
事件和行为
Echarts中有两种事件,1、用户的鼠标事件 2、交互组件后触发的行为事件
一、鼠标事件
鼠标事件: 'click'、'dblclick'、'mousedown'、'mousemove'、'mouseup'、'mouseover'、'mouseout'
myChart.on('click', function(params){
console.log(params.name)
})
二、交互组件
myChart.dispatchAction({ type: '' }) // 通过dispatchAction触发
1、legendselectchanged: 切换图例开关时触发
2、datazoom: 数据区域缩放触发
二、params 对象
{
// 当前点击的图形元素所属的组件名称,
// 其值如 'series'、'markLine'、'markPoint'、'timeLine' 等。
componentType: string,
// 系列类型。值可能为:'line'、'bar'、'pie' 等。当 componentType 为 'series' 时有意义。
seriesType: string,
// 系列在传入的 option.series 中的 index。当 componentType 为 'series' 时有意义。
seriesIndex: number,
// 系列名称。当 componentType 为 'series' 时有意义。
seriesName: string,
// 数据名,类目名
name: string,
// 数据在传入的 data 数组中的 index
dataIndex: number,
// 传入的原始数据项
data: Object,
// sankey、graph 等图表同时含有 nodeData 和 edgeData 两种 data,
// dataType 的值会是 'node' 或者 'edge',表示当前点击在 node 还是 edge 上。
// 其他大部分图表中只有一种 data,dataType 无意义。
dataType: string,
// 传入的数据值
value: number|Array
// 数据图形的颜色。当 componentType 为 'series' 时有意义。
color: string
}
配置选项
1、title: 标题(包括主副标题、链接、样式)
2、legend: 标记的区域 (对legend的显隐、宽高、位置、横纵向排列)
3、grid: 图表的网格区域 (是否显示网格、位标、宽高、背景色、边线色)
4、xAxis、yAxis: x、y坐标轴
{
splitLine:{
show: false, // 去掉网格线
lineStyle: {
color: '#48484a' // 设置网络线颜色
}
},
splitArea : {show : true} //保留网格区域
}
5、dataZoom: 数据缩放 ()
6、toolTip: 提示信息,鼠标移到数据点浮现的提示信息()
7、axisPointer:
8、toolBox: 工具栏 (导出图表、数据视图、动态类型切换、缩放、重置)
9、series: 系列列表(来决定图表的类型、图表的数据)
10、color: 图表每一项的颜色
11、background: 图表背景色
12、textStyle: 文本样式
13、animate: 是否开启动画
----- 组件 -------
14、timeline: 时间轴组件
15、graphic: 原生图形元素组件
16、calendar: 日历坐标组件
17、brush: 区域选择组件
18、geo: 地理坐标系组件
19、parallel: 平行坐标系
20、parallelAxis: 这个组件是平行坐标系中的坐标轴
21、singleAxis: 单轴。可以被应用到散点图中展现一维数据
series对象
type: 展示图表的类型
name: 名称
label: 图形上文本标签的控制(show、position、offset、formatter、)
formatter可以是字符串也可以是函数
字符串模板,模板变量有 {a}、{b}、{c},分别表示系列名,数据名,数据值。
formatter: '{b}: {c}'
label:{
normal:{
formatter: function(data){ // callback
return data.percent + '%';
}
}
},
params:
{
componentType: 'series',
// 系列类型
seriesType: string,
// 系列在传入的 option.series 中的 index
seriesIndex: number,
// 系列名称
seriesName: string,
// 数据名,类目名
name: string,
// 数据在传入的 data 数组中的 index
dataIndex: number,
// 传入的原始数据项
data: Object,
// 传入的数据值
value: number|Array,
// 数据图形的颜色
color: string,
// 百分比
percent: number,
}
labelLine: 图形上图形与文本之间连接线的控制
data: 数据
center: 饼图中心坐标
radius: 半径
收集
1、x、y轴文字的颜色和角度
xAxis: {
type: 'category',
boundaryGap: false,
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
axisLabel: { // 这里控制颜色
show: true,
textStyle: {
color: '#fff'
},
rotate: 45
}
},
参考资料
http://echarts.baidu.com/echarts2/doc/doc.html#Title
http://echarts.baidu.com/gallery/editor.html 在线编辑