ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。
ECharts 遵循 Apache-2.0 开源协议,免费商用。
ECharts 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)及兼容多种设备,可随时随地任性展示。
ECharts 包含了以下特性:
使用Echarts需要有一个容器去填充相关的图表图例
引入cdn
<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js">script>
首先创建一个容器(以div盒模型为例),需要指明宽高否则不会生效。
<div id="myEchart1" style="width:300px;height:200px;">
div>
获取echarts对象及初始化option配置参数(JSON的数据格式)
分为三步:
// 1.根据id获取dom元素,并且创建echart实例对象
var myEchart1 = echarts.init(document.getElementById('myEchart1'));
// 2.设定配置项及图表初始化数据
var option = {.....}
// 3.将设置的配置项设定到echart实例中
myEchart1.setOption(option);
使用示例如下:
<script>
// 1.根据id获取dom元素,并且创建echart实例对象
var myEchart1 = echarts.init(document.getElementById('myEchart1'));
// 2.设定配置项及图表初始化数据
var option = {
// 标题
title: {
text: '编程语言投票',
left: 'center',
top: 20,
textStyle: {
color: 'black'
}
},
// 配置提示信息
tooltip: {},
// 图例组件
legend: {
data: ['编程语言']
},
// x轴要显示的值
xAxis: {
data: ["Java", "C", "Php", "Go", "Python", "JavaScript"]
},
// y轴要显示的值
yAxis: {},
//系列列表,每个系列通过 type 决定自己的图表类型
// bar 柱状条形图,line折线,pie饼图....
series: [{
name: '排名占比',
type: 'bar',
data: [50, 40, 36, 30, 48, 38]
}]
};
// 3.将设置的配置项设定到echart实例中
myEchart1.setOption(option);
script>
option配置项说明
参考官方文档,里面有完整详细的描述 https://echarts.apache.org/zh/option.html
JSON的数据格式
// 1. 标题
title:{
}
// 2.配置提示信息
tooltip:{
}
// 3.图例组件
lengend:{
// 数据项
data:[{
}]
}
// 4.横纵轴显示
xAxis:{
}
yAxis:{
}
//4. series系列列表,每个系列通过 type 决定自己的图表类型
// bar 柱状条形图,line折线,pie饼图....
series: [{
name: 'xxx', // 系列名称
type: 'xxx', // 系列图表类型
data: [] // 系列中的数据内容
}]
series中的type可选值:
饼图主要是通过扇形的弧度表现不同类目的数据在总和中的占比,它的数据格式比柱状图更简单,只有一维的数值,不需要给类目。因为不在直角坐标系上,所以也不需要 xAxis,yAxis。
选中高亮时的配置,即鼠标选中该区域的一个样式,echarts为我们提供了 emphasis 来对选中时的样式进行配置
emphasis: {
itemStyle: {
// 高亮时点的颜色
color: 'cyan'
},
label: {
show: true,
// 高亮时标签的文字
formatter: 'hihihi'
}
}
小例子:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ECharts 饼图title>
<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js">script>
head>
<body>
<div id="pie1" style="width:400px;height: 300px;">
div>
<script>
var pie1 = echarts.init(document.getElementById('pie1', 'dark'));
var option = {
tooltip: {
},
series: [
{
name: '学分信息',
type: 'pie', // 设置图表类型为饼图
radius: '55%', // 饼图的半径,外半径为可视区尺寸(容器高宽中较小一项)的 55% 长度。
// 高亮时的配置
emphasis: {
itemStyle: {
// 高亮时点的颜色
color: 'cyan'
},
label: {
show: true,
// 高亮时标签的文字
formatter: 'hihihi'
}
},
data: [ // 数据数组,name 为数据项名称,value 为数据项值
{ value: 33.5, name: '公共必修课' },
{ value: 78, name: '公共选修课' },
{ value: 12, name: '专业选修课' },
{ value: 6, name: '专业必修课' },
],
}
]
};
pie1.setOption(option);
script>
body>
html>
图例添加,在我们绘制图表时经常会使用,使用legend来进行配置。
在echarts中图例是图表中对内容区元素的注释、用不同形状、颜色、文字等来标示不同数据列,通过点击对应数据列的标记,可以显示或隐藏该数据列。
在legend中四个方位中 bottom和top如果写字符串的话就是对应的center,left…,然后四个方位都可以写数字,即表示对应的边距值
legend: {
// 图例排列方式 水平或者垂直 horizontal | vertical
orient: 'vertical',
// 图例的详细位置信息
left: 10,
top: 'center',
bottom: 10,
right:10
},
小例子:
<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js">script>
<div id="pie2" style="width:400px;height:400px;">
div>
<script>
var pie2 = echarts.init(document.getElementById('pie2'));
var option = {
legend: {
orient: 'vertical',
right: 10,
top: 'center'
},
tooltip: {
},
dataset: {
source: [
['product', '2015', '2016', '2017'],
['Matcha Latte', 43.3, 85.8, 93.7],
['Milk Tea', 83.1, 73.4, 55.1],
['Cheese Cocoa', 86.4, 65.2, 82.5],
['Walnut Brownie', 72.4, 53.9, 39.1]
]
},
xAxis: { type: 'category' },
yAxis: {},
series: [{ type: 'bar' }, { type: 'bar' }, { type: 'bar' }]
};
pie2.setOption(option);
script>
觉得上面的图例样式,太单调,可以使用legend.data来对图例名称(name)和图例图标(icon)的设定
比如我们将上面的代码修改如下:
legend: {
// orient: 'vertical',
// right: 10,
// top: 'center',
data: [
{
name: '2015',
icon: 'rect'
},
{
name: '2016',
icon: 'circle'
},
{
name: '2017',
icon: 'pin'
}
]
},
还有好多不足,后续再补充!