一、简单入门
1.从官网下载echarts
http://echarts.baidu.com/download.html
2.引入echarts
-
3.0以上的版本
<html> <head> <meta charset="utf-8"> <!-- 引入 ECharts 文件 --> <script src="echarts.min.js"></script> </head> </html>
3.绘制柱状图表
-
首先在页面上设置一个显示区域
<body> <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM --> <div id="main" style="width: 600px;height:400px;"></div> </body>
-
然后通过 echarts.init 方法初始化一个 echarts 实例并通过 setOption 方法生成一个简单的柱状图
<script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); // 指定图表的配置项和数据 var option = { title: { text: 'ECharts 入门示例' }, tooltip: {}, legend: { data:['销量'] }, xAxis: { data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); </script>
二、自定义ECharts
- 一般官方定制的echarts会满足绝大部分业务需求,但有时也需要自定义一些echarts。
- 在线自定义构建:比较方便。
- 使用
echarts/build/build.js
脚本自定义构建:比在线构建更灵活一点,并且支持多语言。 - 直接使用构建工具(如 rollup、webpack、browserify)自己构建:也是一种选择。
三、饼状图
-
最简单的图表,不需要x y 轴。
myChart.setOption({ series : [ { name: '访问来源', type: 'pie', radius: '55%', data:[ {value:235, name:'视频广告'}, {value:274, name:'联盟广告'}, {value:310, name:'邮件营销'}, {value:335, name:'直接访问'}, {value:400, name:'搜索引擎'} ] } ] })
-
设置样式
option = { //设置全局背景色 backgroundColor: '#2c343c', visualMap: { // 不显示 visualMap 组件,只用于明暗度的映射 show: false, // 映射的最小值为 80 min: 80, // 映射的最大值为 600 max: 600, inRange: { // 明暗度的范围是 0 到 1 colorLightness: [0, 1] } }, series : [ { name: '访问来源', type: 'pie', radius: '55%', data:[ {value:235, name:'视频广告'}, {value:274, name:'联盟广告'}, {value:310, name:'邮件营销'}, {value:335, name:'直接访问'}, { value:400, name:'搜索引擎', //设置每个扇形的样式 itemStyle: { color: '#c23531' } }, ], //设置成南丁格尔图 roseType: 'angle', //设置全局字体样式 textStyle: { color: 'rgba(255, 255, 255, 0.3)' } //设置每个系利的字体样式 label: { normal: { textStyle: { color: 'rgba(255, 255, 255, 0.3)' } } }, //设置视觉引导线的样式 labelLine: { normal: { lineStyle: { color: 'rgba(255, 255, 255, 0.3)' } } }, //设置扇形的样式 itemStyle: { // 阴影的大小 shadowBlur: 200, // 阴影水平方向上的偏移 shadowOffsetX: 0, // 阴影垂直方向上的偏移 shadowOffsetY: 0, // 阴影颜色 shadowColor: 'rgba(0, 0, 0, 0.5)' // 设置扇形的颜色 color: '#c23531', } } } ] };
四、ECharts 中的样式简介
1.颜色主题
var chart = echarts.init(dom, 'light');
var chart = echarts.init(dom, 'dark');
-
设置json格式的主题
// 假设主题名称是 "vintage" xxx/xxx/ 代表路径 $.getJSON('xxx/xxx/vintage.json', function (themeJSON) { echarts.registerTheme('vintage', JSON.parse(themeJSON)) var chart = echarts.init(dom, 'vintage'); });
-
设置js格式的主题
// HTML 引入 vintage.js 文件后(假设主题名称是 "vintage") var chart = echarts.init(dom, 'vintage');
2.调色盘
-
在option中全局设置
option = { // 全局调色盘。 color: ['#c23531','#2f4554', '#61a0a8', '#d48265', '#91c7ae','#749f83', '#ca8622', '#bda29a','#6e7074', '#546570', '#c4ccd3'], series: [{ type: 'bar', // 此系列自己的调色盘。 color: ['#dd6b66','#759aa0','#e69d87','#8dc1a9','#ea7e53','#eedd78','#73a373','#73b9bc','#7289ab', '#91ca8c','#f49f42'], ... }, { type: 'pie', // 此系列自己的调色盘。 color: ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C','#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'], ... }] }
3.直接设置样式
-
鼠标悬浮时的高亮样式
//4.0版本的写法 option = { series: { type: 'scatter', // 普通样式。 itemStyle: { // 点的颜色。 color: 'red' }, label: { show: true, // 标签的文字。 formatter: 'This is a normal label.' }, // 高亮样式。 emphasis: { itemStyle: { // 高亮时点的颜色。 color: 'blue' }, label: { show: true, // 高亮时标签的文字。 formatter: 'This is a emphasis label.' } } } } //4.0之前的版本写法,但是不推荐 option = { series: { type: 'scatter', itemStyle: { // 普通样式。 normal: { // 点的颜色。 color: 'red' }, // 高亮样式。 emphasis: { // 高亮时点的颜色。 color: 'blue' } }, label: { // 普通样式。 normal: { show: true, // 标签的文字。 formatter: 'This is a normal label.' }, // 高亮样式。 emphasis: { show: true, // 高亮时标签的文字。 formatter: 'This is a emphasis label.' } } } }
4.通过 visualMap 组件设定样式
-
visualMap是视觉映射组件,提供了以下视觉元素:
图形类别(symbol)
、图形大小(symbolSize)
颜色(color)
、透明度(opacity)
、色调(colorHue)
颜色透明度(colorAlpha)
、颜色明暗度(colorLightness)
、颜色饱和度(colorSaturation)
五、异步数据加载和更新
1.异步加载
-
图表初始化后不管任何时候通过 jQuery 等工具异步获取数据后通过
setOption
填入数据和配置项var myChart = echarts.init(document.getElementById('main')); $.get('data.json').done(function (data) { myChart.setOption({ title: { text: '异步数据加载示例' }, tooltip: {}, legend: { data:['销量'] }, xAxis: { data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }] }); });
-
先设置完其它的样式,显示一个空的直角坐标轴,然后获取数据后填入数据。
var myChart = echarts.init(document.getElementById('main')); // 显示标题,图例和空的坐标轴 myChart.setOption({ title: { text: '异步数据加载示例' }, tooltip: {}, legend: { data:['销量'] }, xAxis: { data: [] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [] }] }); // 异步加载数据 $.get('data.json').done(function (data) { // 填入数据 myChart.setOption({ xAxis: { data: data.categories }, series: [{ // 根据名字对应到相应的系列 name: '销量', data: data.data }] }); });
2.loading动画
-
有时数据加载时间过长的话,需要一些过场动画。
//显示加载动画 myChart.showLoading(); $.get('data.json').done(function (data) { //隐藏加载动画 myChart.hideLoading(); myChart.setOption(...); });
3.数据的动态更新
- 定时获取数据,setOption 填入数据,ECharts 会找到两组数据之间的差异然后通过合适的动画去表现数据的变化。