Echarts 可视化基础知识
1.ECharts 简介
ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表。
- 是一个JS插件
- 性能好可流畅运行PC与移动设备
- 兼容主流浏览器
- 提供很多常用图表,且可定制。
2.ECharts 使用
(1) 下载并引入EChart.js文件
<script src="js/echarts.min.js"></script>
(2)准备一个具备大小的DOM容器来装生成的图表
<div id="main" style="width: 600px;height:400px;"></div>
(3)初始化echarts实例对象
var myChart = echarts.init(document.querySelector('.box'));
(4)根据具体需求修改配置选项(option)
var option = {
title: {
text: 'ECharts 入门示例'
},
tooltip: {},
legend: {
data: ['销量']
},
xAxis: {
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
};
(5)将配置项设置给echarts实例对象
myChart.setOption(option);
3.Echarts 基础配置
(1) title:标题组件
(2) tooltip:提示框组件
(3) legend:图例组件
(4) color:调色盘颜色列表
(5) grid:直角坐标系内绘图网格
②当刻度标签溢出的时候,grid 区域是否包含坐标轴的刻度标签。如果为true,则显示刻度标签
(6) series:系列列表
-
type: 每个系列通过 type 决定自己的图表类型,比如 line 是折线 bar 柱形等,可以多个图表重叠 -
name: 系列名称,用于tooltip的显示,legend 的图例筛选 变化 -
stack: 数据堆叠 ①如果设置相同值,则会数据堆叠。 数据堆叠: 第二个数据值= 第一个数据值 + 第二个数据值 第三个数据值 = 第二个数据值 + 第三个数据值…. 依次叠加 ②如果给stack 指定不同值或者去掉这个属性则不会发生数据堆叠
(7) xAxis:直角坐标系 grid 中的 x 轴
- boundaryGap: 坐标轴两边留白为 true,这时候刻度只是作为分隔线,标签和数据点都会在两个刻度之间的带(band)中间。
(8) yAxis:直角坐标系 grid 中的 y 轴
4.线形图
var option = {
color: ['pink', 'blue', 'green', 'skyblue', 'red'],
title: {
text: '我的折线图'
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['直播营销', '联盟广告', '视频广告', '直接访问']
},
grid: {
left: '3%',
right: '3%',
bottom: '3%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: ['星期一', '星期二', '周三', '周四', '周五', '周六', '周日']
},
yAxis: {
type: 'value'
},
series: [
{
name: '直播营销',
type: 'line',
data: [120, 132, 101, 134, 90, 230, 210]
},
{
name: '联盟广告',
type: 'line',
data: [220, 182, 191, 234, 290, 330, 310]
},
{
name: '视频广告',
type: 'line',
data: [150, 232, 201, 154, 190, 330, 410]
},
{
name: '直接访问',
type: 'line',
data: [320, 332, 301, 334, 390, 330, 320]
}
]
};
4.饼状图
option = {
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
series: [
{
name: '点位统计',
type: 'pie',
radius: ['10%', '70%'],
center: ['50%', '50%'],
roseType: 'radius',
data: [
{value:10, name:'rose1'},
{value:5, name:'rose2'},
{value:15, name:'rose3'},
{value:25, name:'rose4'},
{value:20, name:'rose5'},
{value:35, name:'rose6'},
{value:30, name:'rose7'},
{value:40, name:'rose8'}
]
}
]
};
5.柱状图
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
axisTick: {
alignWithLabel: true
}
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name: '用户统计',
type: 'bar',
barWidth: '60%',
data: [10, 52, 200, 334, 390, 330, 220]
}
]
};
6.雷达图
var option = {
tooltip: {
show: true,
position: ["60%", "10%"]
},
radar: {
indicator: [
{ name: "机场", max: 100 },
{ name: "商场", max: 100 },
{ name: "火车站", max: 100 },
{ name: "汽车站", max: 100 },
{ name: "地铁", max: 100 }
],
radius: "65%",
shape: "circle",
splitNumber: 4,
name: {
textStyle: {
color: "#4c9bfd"
}
},
splitLine: {
lineStyle: {
color: "rgba(255,255,255, 0.5)"
}
},
splitArea: {
show: false
},
axisLine: {
lineStyle: {
color: "rgba(255, 255, 255, 0.5)"
}
}
},
series: [
{
name: "北京",
type: "radar",
lineStyle: {
normal: {
color: "#fff",
width: 1,
opacity: 0.5
}
},
data: [[90, 19, 56, 11, 34]],
symbol: "circle",
symbolSize: 5,
itemStyle: {
color: "#fff"
},
label: {
show: true,
fontSize: 10
},
areaStyle: {
color: "rgba(238, 197, 102, 0.6)"
}
}
]
};
7.饼状图
var option = {
series: [
{
name: "销售进度",
type: "pie",
radius: ["50%", "70%"],
labelLine: {
normal: {
show: false
}
},
data: [{ value: 100 }, { value: 100 }, { value: 200 }]
}
]
};
5.Echarts 社区介绍
在Echarts 社区可以找到一些基于echart的高度定制好的图表,相当于基于jquery开发的插件,这里是基于echarts开发的第三方的图表。
(1) 模拟飞机航线例子:https://gallery.echartsjs.com/editor.html?c=x0-ExSkZDM
(2) 实现步骤:
- 首先需要下载china.js提供中国地图的js文件
- 由于代码比较多,因此新建一个新的js文件 myMap.js 引入
- 使用社区提供的配置即可。
|