echart 总结

2,172 阅读3分钟

一 定义

echart 是一个图表制作插件,被广泛用于数据可视化项目。使用者可以无需关注它的具体实现原理,只需去调整它option对象里的属性,便能生成丰富漂亮的图表应用。

二 属性

1 常用option属性



其它常用属性比如:背景色,动画,是否显示,文本样式等待

2 工具


3 图表类型



4 坐标系类型

直角坐标系

极坐标系

地理坐标系


三 地图

1 他人总结的资料


2 使用

总结为--引入地图数据---设置地图样式--- 设置要显示在地理坐标系的数据

(1)通过引入地图js的方式

    引入echart.js

   引入要使用的地图的js(引入后会自动注册地图名字和数据)

<script src="js/echarts.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/china.js" type="text/javascript" charset="utf-8"></script>

修改地图样式:

geo: {
			show: true,
			map: 'china',
			label: {
				normal: {
					show: false
				},
				emphasis: {
					show: false,
				}
			},
			roam: false,
			itemStyle: {
				normal: {
					areaColor: '#173E72FF',
					borderColor: '#02A6B7FF',
					borderWidth: '1'
				},
				emphasis: {
					areaColor: '#4499d0',
				}
			}
		},
在series中设置

coordinateSystem: 'geo',

(2)json方式

引入该json

用registerMap进行手动注册地图和数据

其它使用与js引入基本一致

$.get('map/json/china.json', function (chinaJson) {
    echarts.registerMap('china', chinaJson);
    var chart = echarts.init(document.getElementById('main'));
    chart.setOption({
        series: [{
            type: 'map',
            map: 'china'
        }]
    });
});
(3)Bmap百度地图方式

先引入百度地图API

coordinateSystem的值必须设置为bmap

option中设置bmap样式

 bmap: {
            center: [108.95, 34.27], 
            zoom: 6,
            roam: true,
            label: {
                show: true,
            },
            mapStyle:{
                styleJson: mapStyle, // 定义bmap的样式
            },
        }


3 如果需要引入区域地图

4 阿里各省市地图下载资源(很全,json格式)

datav.aliyun.com/tools/atlas…


四 可视化编辑网站


大部分的option属性都可以在该网站直接编辑,显示代码


五 常见问题


1 实现柱状图重叠效果(数据统一标量)

重点:重叠不需要对值做相加处理,只需要将两列值重合

y轴设置最大值,统一了标量
max: maxNum,

barGap: "-100%",

2 实现柱状图上的标签(可自定义)
在series数组的具体对象中,设置label

label: {
        normal: {
            show: true,
            lineHeight: 30,
            width: 80,
            height: 30,
				color: '#ffffff',
            position: ['0', '-30'],
            distance: 1,
            formatter: function(params) {
            	console.log(params);
            	var tipHtml = '';
            	tipHtml = parseInt(activeClassroomNum[params.dataIndex]/allClassroomNum[params.dataIndex]*100) +'%'
            	return tipHtml;
            }
        }
    }

3 颜色线性渐变的实现(任意处)

0,0,0,1 可表示渐变方向,此处表示从上到下的线性渐变

itemStyle: {
    normal: {
    	color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
			offset: 0,
			color: '#0BD7D4'
    	}, {
			offset: 1,
			color: '#0199FE'
    	}]),
    }
}



5 png 转base64形式

echart基本上只支持这种格式和svg,经常会用到转换

转换网站


6 vue中如下使用echart需要移除监听

任何在vue中用js添加的事件监听,定时器等,都需要去移除。以避免内存的消耗

mounted(){
   let self = this
   this.echartInstance = echarts.init(document.getElementById('chart-container')); 
   this.echartInstance.setOption(options)
    window.addEventListener("resize",function(){
     self.echartInstance.resize() }) 
    }
destroyed(){
        window.removeEventListener("resize",this.resizeHandle)
    }


心得体会:echart 经常被用来做数据大屏的项目,使用很广。在做数据大屏时,需要对echart的功能点(能做的效果)非常了解。同时也需要对一些常用属性有所了解。倒也不需要强记,只要了解功能点,可以对应echart官方文档,vis.baidu.com/ (在线编辑工具)对样式效果做调整。GL有用到它的三维坐标系,大部分属性与其基本一致。结合百度地图,css3动画效果会做出比较酷的数据大屏应用。