echarts之增量动画
增量动画
mCharts.setOption
所有数据的更新都通过setOption实现
不用考虑数据到底产生了哪些变化
Echarts会找到两组数据之间的差异然后通过合适的动画去表现数据的变化
demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>柱状图</title>
<!-- 1。引入echart.js文件-->
<script src="lib/echarts.min.js"></script>
</head>
<body>
<div style="height: 600px;width: 600px">
</div>
<button id="modify">修改数据</button>
<button id="add">新增数据</button>
<script>
//3。初始化echarts实力对象
var mCharts = echarts.init(document.querySelector('div'));
var xArrData = ['张三', '李四', '王五', '闰土', '小明', '茅台', '二妞', '大强'];
var yArrData = [88, 92, 63, 77, 94, 80, 72, 86];
//4。准备配置项
var option = {
title: {
text: '成绩',
textStyle: {
color: 'red'
}
},
xAxis: { //直角坐标系中的x轴
// type: 'category', //类目轴
type: 'value', //类目轴
// data: xArrData
},
yAxis: {//直角坐标系中的y轴
// type: 'value', //数值轴
type: 'category', //数值轴
data: xArrData
},
series: [ // 系列列表。每一个系列通过type决定自己的图标类型
{
name: '语文',
type: 'bar', //图标的类型
markPoint: { //最大值
data: [
{
type: 'max',
name: '最大值'
},
{
type: 'min',
name: '最小值'
}
]
},
markLine: {// 最小值
data: [
{
type: 'average',
name: '平均值'
}
]
},
label: { //数值的位置展示
show: true,
rotate: 60,
// position:'inside'
position: 'bottom'
},
barWidth: '30%', //柱的宽度
data: yArrData
}
]
}
//5。将配置项设置给echarts实例对象
mCharts.setOption(option);
var btnModify = document.querySelector('#modify');
btnModify.onclick = function () {
debugger
var newYdataArr = [37, 50, 63, 12, 30, 20, 50, 10];
//4。准备配置项
//新的option可以设置多次,新的option和旧的option,并不是相互覆盖的,是一个相互整合的关系。
//设置新的option的时候,只需要考虑到变化的部分就可以了
var option = {
series: [ // 系列列表。每一个系列通过type决定自己的图标类型
{
data: newYdataArr
}
]
}
//5。将配置项设置给echarts实例对象
mCharts.setOption(option);
}
var btnModify = document.querySelector('#add');
btnModify.onclick = function () {
xArrData.push('小明');
yArrData.push('90');
var option={
xAxis: {
data:xArrData
},
series:[{
data:yArrData
}]
};
mCharts.setOption(option);
}
</script>
</body>
</html>
本文来自博客园,作者:King-DA,转载请注明原文链接:https://www.cnblogs.com/qingmuchuanqi48/articles/16570788.html

浙公网安备 33010602011771号