在实验过程中需要实现数据可视化,故学习ECharts作此记录。
- ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。
- ECharts 遵循 Apache-2.0 开源协议,免费商用。
- ECharts 兼容当前绝大部分浏览器。
第一个ECharts实例
在绘图前需要为ECharts准备一个定义了高宽的DOM容器,然后就可以通过echarts.init方法初始化一个echarts实例并通过setOption方法生成一个简单的柱状图。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>第一个 ECharts 实例</title>
<!-- 引入 echarts.js -->
<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width: 600px;height:400px;"></div>
<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>
</body>
</html>
echarts特性
丰富的可视化类型: 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。
多种数据格式无需转换直接使用: 内置的 dataset 属性(4.0+)支持直接传入包括二维表,key-value 等多种格式的数据源,此外还支持输入 TypedArray 格式的数据。
千万数据的前端展现: 通过增量渲染技术(4.0+),配合各种细致的优化,ECharts 能够展现千万级的数据量。
移动端优化: 针对移动端交互做了细致的优化,例如移动端小屏上适于用手指在坐标系中进行缩放、平移。 PC 端也可以用鼠标在图中进行缩放(用鼠标滚轮)、平移等。
多渲染方案,跨平台使用: 支持以 Canvas、SVG(4.0+)、VML 的形式渲染图表。
深度的交互式数据探索: 提供了图例、视觉映射、数据区域缩放、tooltip、数据刷选等开箱即用的交互组件,可以对数据进行多维度数据筛取、视图缩放、展示细节等交互操作。
多维数据的支持以及丰富的视觉编码手段: 对于传统的散点图等,传入的数据也可以是多个维度的。
动态数据: 数据的改变驱动图表展现的改变。
绚丽的特效: 针对线数据,点数据等地理数据的可视化提供了吸引眼球的特效。
通过 GL 实现更多更强大绚丽的三维可视化: 在 VR,大屏场景里实现三维的可视化效果。
无障碍访问(4.0+): 支持自动根据图表配置项智能生成描述,使得盲人可以在朗读设备的帮助下了解图表内容,让图表可以被更多人群访问!
ECharts安装
共3中安装方式
1、独立版本
直接下载echarts.min.js引入使用,开发环境下可以使用源代码版本echarts.js引入使用,在项目中通过<script src=>引入
ECharts官网:https://echarts.apache.org/zh/download.html
2、使用CDN方法
Staticfile CDN(国内) :https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js
jsDelivr:https://cdn.jsdelivr.net/npm/echarts@4.3.0/dist/echarts.min.js
cdnjs :https://cdnjs.cloudflare.com/ajax/libs/echarts/4.3.0/echarts.min.js
推荐从 jsDelivr 引用 echarts
3、NPM方法
npm install echarts --save
ECharts配置语法
1、创建HTML页面
创建一个HTML页面,引入echarts.js
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>demo01</title>
<!-- 引入echarts.js -->
<script src="js/echarts.js"></script>
</head>
<body>
</body>
</html>
2、为ECharts准备一个具备高宽的DOM容器
实例中id为main的div用于包含ECharts绘制的图表
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="main" style="width: 600px;height:400px;"></div>
3、设置配置信息
ECharts库使用json格式来配置
echarts.init(document.getElementById('main')).setOption(option);
这里的option表示使用json数据格式的配置来绘制图表。步骤如下:
标题
为图表配置标题
title: {
text: '第一个 ECharts 实例'
}
提示信息
配置提示信息
tooltip:{},
图例组件
图例组件展现了不同系列的标记(symbol),颜色和名字,可以通过点击图例控制哪些系列不显示。
legend: {
data: [{
name: '系列1',
// 强制设置图形为圆。
icon: 'circle',
// 设置文本为红色
textStyle: {
color: 'red'
}
}]
}
x轴
配置要在x轴显示的项
xAxis: {
data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
}
y轴
配置要在y轴显示的项
xAxis: {
data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
}
系列列表
每个系列通过type决定自己的图表类型
series: [{
name: '销量', // 系列名称
type: 'bar', // 系列图表类型
data: [5, 20, 36, 10, 10, 20] // 系列中的数据内容
}]
每个系列通过type决定自己的图表类型
type: ‘bar’:柱状/条形图
type: ‘line’:折线/面积
type: ‘pie’:饼图
type: ‘scatter’:散点(气泡)图
type: ‘effectScatter’:带有涟漪特效动画的散点(气泡)
type: ‘radar’:雷达图
type: ‘tree’:树型图
type: ‘treemap’:树型图
type: 'sunburst’:旭日图
type: ‘boxplot’:箱形图
type: ‘candlestick’:K线图
type: ‘heatmap’:热力图
type: ‘map’:地图
type: ‘parallel’:平行坐标系的系列
type: ‘lines’:线图
type: ‘graph’:关系图
type: ‘sankey’:桑基图
type: ‘funnel’:漏斗图
type: ‘gauge’:仪表盘
type: ‘pictorialBar’:象形柱图
type: ‘themeRiver’:主题河流
type: ‘custom’:自定义系列
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>demo01</title>
<!-- 引入echarts.js -->
<script src="js/echarts.js"></script>
</head>
<body>
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '水果需求图'
},
tooltip: {},
legend: {
data:[{name:'需求量',icon:'circle',textStyle:{color:'blue'}}]
},
xAxis: {
data: ["苹果","梨子","香蕉","火龙果","猕猴桃","西瓜"]
},
yAxis: {},
series: [{
name: '需求量',
type: 'line',
color:'red',
data: [5, 10, 8, 5, 10, 2]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>