ECharts的介绍和使用方法,以及其他常见的数据可视化库介绍

29 篇文章 0 订阅
1 篇文章 0 订阅

常见的数据可视化库:

  • D3.js 目前 Web 端评价最高的 Javascript 可视化工具库(入手难)
  • ECharts.js 百度出品的一个开源 Javascript 数据可视化库
  • Highcharts.js 国外的前端数据可视化库,非商用免费,被许多国外大公司所使用
  • AntV 蚂蚁金服全新一代数据可视化解决方案 等等

HighchartsEcharts 就像是 Office 和 WPS 的关系

09-Echarts-介绍

ECharts, 一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

大白话:

官网地址:https://www.echartsjs.com/zh/index.html

10-Echarts-初体验(简单使用)

官方教程: 五分钟上手ECharts

使用步骤:

  1. 引入echarts.js 插件文件到html页面中
  2. 准备一个具备大小的DOM容器(初次使用很容易就忘记了)
<div id="main" style="width: 600px;height:400px;"></div>
  1. 初始化echarts实例对象
var myChart = echarts.init(document.getElementById('main'));
  1. 指定配置项和数据(option)
var option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        data: [820, 932, 901, 934, 1290, 1330, 1320],
        type: 'line'
    }]
};
  1. 将配置项设置给echarts实例对象,就简单完成了一个图表了,使用很简单
myChart.setOption(option);

11-Echarts-基础配置

需要知道的主要配置:series xAxis yAxis grid tooltip title legend color

  • series

    • 系列列表。每个系列通过 type 决定自己的图表类型
    • 大白话:图标数据,指定什么类型的图标,可以多个图表重叠。
  • xAxis:直角坐标系 grid 中的 x 轴

    • boundaryGap: 坐标轴两边留白策略 true,这时候刻度只是作为分隔线,标签和数据点都会在两个刻度之间的带(band)中间。
  • yAxis:直角坐标系 grid 中的 y 轴

  • grid:直角坐标系内绘图网格 ,可以控制图表在dom容器中的大小,位置

  • containLabel 是否显示刻度标签,true,false

  • title:标题组件

  • tooltip:提示框组件

  • legend:图例组件

  • toolbox 工具箱组件,可以另存为图片等功能

  • color:调色盘颜色列表

    数据堆叠,同个类目轴上系列配置相同的stack值后 后一个系列的值会在前一个系列的值上相加。
    在这里插入图片描述
    基本配置项综合的结构:附详细注释

option = {
    // color设置我们线条的颜色 注意后面是个数组
    color: ['pink', 'red', 'green', 'skyblue'],
    // 设置图表的标题
    title: {
        text: '折线图堆叠123'
    },
    // 图表的提示框组件 
    tooltip: {
        // 触发方式
        trigger: 'axis'
    },
    // 图例组件
    legend: {
       // series里面有了 name值则 legend里面的data可以删掉
    },
    // 网格配置  grid可以控制线形图 柱状图 图表大小
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        // 是否显示刻度标签 如果是true 就显示 否则反之
        containLabel: true
    },
    // 工具箱组件  可以另存为图片等功能
    toolbox: {
        feature: {
            saveAsImage: {}
        }
    },
    // 设置x轴的相关配置
    xAxis: {
        type: 'category',
        // 是否让我们的线条和坐标轴有缝隙
        boundaryGap: false,
        data: ['星期一', '周二', '周三', '周四', '周五', '周六', '周日']
    },
     // 设置y轴的相关配置
    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]
        }
    ]
};

知道一些基本的配置项,就能大概看懂一个ECharts的结构和配置指的是什么,
当然配置信息不只这些,详细配置项参考官方官方配置项

ECharts开发中的使用方法:

1.根据实际需求,在官网找到类似实例,长得最像实际需求的实例官方示例
2. 引入到HTML页面中,并且适当分析
3.根据需求,查看配置项手册,逐步定制图表

3个完整实例如下:均有详细注释

一:

效果:
在这里插入图片描述
代码:

<!DOCTYPE html>
<html lang="zh">

	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta http-equiv="X-UA-Compatible" content="ie=edge" />
		<title>Document</title>
		<style type="text/css">
			#box {
				background-color: rgba(8, 16, 57, 0.5);
				height: 500px;
				width: 700px;
			}
		</style>
	</head>

	<body>
		<div id="box"></div>
	</body>
	<script src="echarts.min.js"></script>
	<script>
		// 柱状图模块1
		(function() {
			// 1实例化对象
			var myChart = echarts.init(document.querySelector("#box"));
			// 2. 指定配置项和数据
			var option = {
				color: ["#2f89cf"],
				tooltip: {
					trigger: "axis",
					axisPointer: {
						// 坐标轴指示器,坐标轴触发有效
						type: "shadow" // 默认为直线,可选为:'line' | 'shadow'
					}
				},
				// 修改图表的大小
				grid: {
					left: "0%",
					top: "10px",
					right: "0%",
					bottom: "4%",
					containLabel: true
				},
				xAxis: [{
					type: "category",
					data: [
						"旅游行业",
						"教育培训",
						"游戏行业",
						"医疗行业",
						"电商行业",
						"社交行业",
						"金融行业"
					],
					axisTick: {
						alignWithLabel: true
					},
					// 修改刻度标签 相关样式
					axisLabel: {
						color: "rgba(255,255,255,.6) ",
						fontSize: "12"
					},
					// 不显示x坐标轴的样式
					axisLine: {
						show: false
					}
				}],
				yAxis: [{
					type: "value",
					// 修改刻度标签 相关样式
					axisLabel: {
						color: "rgba(255,255,255,.6) ",
						fontSize: 12
					},
					// y轴的线条改为了 2像素
					axisLine: {
						lineStyle: {
							color: "rgba(255,255,255,.1)",
							width: 2
						}
					},
					// y轴分割线的颜色
					splitLine: {
						lineStyle: {
							color: "rgba(255,255,255,.1)"
						}
					}
				}],
				series: [{
					name: "直接访问",
					type: "bar",
					barWidth: "35%",
					data: [200, 300, 300, 900, 1500, 1200, 600],
					itemStyle: {
						// 修改柱子圆角
						barBorderRadius: 5
					}
				}]
			};
			// 3. 把配置项给实例对象
			myChart.setOption(option);
			
			
			// 4. 让图表跟随屏幕自动的去适应
			window.addEventListener("resize", function() {
				myChart.resize();
			});
		})();
	</script>

</html>
二:

效果:
在这里插入图片描述

代码:

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta http-equiv="X-UA-Compatible" content="ie=edge" />
		<title>Document</title>
		<style type="text/css">
			#box {
				background-color: rgba(8, 16, 57, 0.5);
				height: 500px;
				width: 700px;
			}
		</style>
	</head>
	<body>
		<div id="box"></div>
	</body>
	<script src="echarts.min.js"></script>
	<script>
		// 柱状图2
		(function() {
			var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];
			// 1. 实例化对象
			var myChart = echarts.init(document.querySelector("#box"));
			// 2. 指定配置和数据
			var option = {
				grid: {
					top: "10%",
					left: "22%",
					bottom: "10%"
					// containLabel: true
				},
				// 不显示x轴的相关信息
				xAxis: {
					show: false
				},
				yAxis: [{
						type: "category",
						inverse: true,
						data: ["HTML5", "CSS3", "javascript", "VUE", "NODE"],
						// 不显示y轴的线
						axisLine: {
							show: false
						},
						// 不显示刻度
						axisTick: {
							show: false
						},
						// 把刻度标签里面的文字颜色设置为白色
						axisLabel: {
							color: "#fff"
						}
					},
					{
						data: [702, 350, 610, 793, 664],
						inverse: true,
						// 不显示y轴的线
						axisLine: {
							show: false
						},
						// 不显示刻度
						axisTick: {
							show: false
						},
						// 把刻度标签里面的文字颜色设置为白色
						axisLabel: {
							color: "#fff"
						}
					}
				],
				series: [{
						name: "条",
						type: "bar",
						data: [70, 34, 60, 78, 69],
						yAxisIndex: 0,
						// 修改第一组柱子的圆角
						itemStyle: {
							barBorderRadius: 20,
							// 此时的color 可以修改柱子的颜色
							color: function(params) {
								// params 传进来的是柱子对象
								console.log(params);
								// dataIndex 是当前柱子的索引号
								return myColor[params.dataIndex];
							}
						},
						// 柱子之间的距离
						barCategoryGap: 50,
						//柱子的宽度
						barWidth: 10,
						// 显示柱子内的文字
						label: {
							show: true,
							position: "inside",
							// {c} 会自动的解析为 数据  data里面的数据
							formatter: "{c}%"
						}
					},
					{
						name: "框",
						type: "bar",
						barCategoryGap: 50,
						barWidth: 15,
						yAxisIndex: 1,
						data: [100, 100, 100, 100, 100],
						itemStyle: {
							color: "none",
							borderColor: "#00c1de",
							borderWidth: 3,
							barBorderRadius: 15
						}
					}
				]
			};

			// 3. 把配置给实例对象
			myChart.setOption(option);
		})();
	</script>

</html>

三:

效果:
在这里插入图片描述

代码:

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta http-equiv="X-UA-Compatible" content="ie=edge" />
		<title>Document</title>
		<style type="text/css">
			#box {
				background-color: rgba(8, 16, 57, 0.5);
				height: 500px;
				width: 700px;
			}
		</style>
	</head>

	<body>
		<div id="box"></div>
	</body>
	<script src="echarts.min.js"></script>
	<script>
		// 折线图2 模块制作
		(function() {
			var myChart = echarts.init(document.querySelector("#box"));
			var option = {
				tooltip: {
					trigger: "axis"
				},
				legend: {
					top: "0%",
					data: ["邮件营销", "联盟广告", "视频广告", "直接访问", "搜索引擎"],
					textStyle: {
						color: "rgba(255,255,255,.5)",
						fontSize: "12"
					}
				},

				grid: {
					left: "10",
					top: "30",
					right: "10",
					bottom: "10",
					containLabel: true
				},
				xAxis: [{
					type: "category",
					boundaryGap: false,
					// x轴更换数据
					data: [
						"01",
						"02",
						"03",
						"04",
						"05",
						"06",
						"07",
						"08",
						"09",
						"10",
						"11",
						"12",
						"13",
						"14",
						"15",
						"16",
						"17",
						"18",
						"19",
						"20",
						"21",
						"22",
						"23",
						"24",
						"25",
						"26",
						"26",
						"28",
						"29",
						"30"
					],
					// 文本颜色为rgba(255,255,255,.6)  文字大小为 12
					axisLabel: {
						textStyle: {
							color: "rgba(255,255,255,.6)",
							fontSize: 12
						}
					},
					// x轴线的颜色为   rgba(255,255,255,.2)
					axisLine: {
						lineStyle: {
							color: "rgba(255,255,255,.2)"
						}
					}
				}],
				yAxis: [{
					type: "value",
					axisTick: { show: false },
					axisLine: {
						lineStyle: {
							color: "rgba(255,255,255,.1)"
						}
					},
					axisLabel: {
						textStyle: {
							color: "rgba(255,255,255,.6)",
							fontSize: 12
						}
					},
					// 修改分割线的颜色
					splitLine: {
						lineStyle: {
							color: "rgba(255,255,255,.1)"
						}
					}
				}],
				series: [{
					name: "邮件营销",
					type: "line",
					smooth: true,
					// 单独修改当前线条的样式
					lineStyle: {
						color: "#0184d5",
						width: "2"
					},
					// 填充颜色设置
					areaStyle: {
						color: new echarts.graphic.LinearGradient(
							0,
							0,
							0,
							1, [{
									offset: 0,
									color: "rgba(1, 132, 213, 0.4)" // 渐变色的起始颜色
								},
								{
									offset: 0.8,
									color: "rgba(1, 132, 213, 0.1)" // 渐变线的结束颜色
								}
							],
							false
						),
						shadowColor: "rgba(0, 0, 0, 0.1)"
					},
					// 设置拐点
					symbol: "circle",
					// 拐点大小
					symbolSize: 8,
					// 开始不显示拐点, 鼠标经过显示
					showSymbol: false,
					// 设置拐点颜色以及边框
					itemStyle: {
						color: "#0184d5",
						borderColor: "rgba(221, 220, 107, .1)",
						borderWidth: 12
					},
					data: [
						30,
						40,
						30,
						40,
						30,
						40,
						30,
						60,
						20,
						40,
						30,
						40,
						30,
						40,
						30,
						40,
						30,
						60,
						20,
						40,
						30,
						40,
						30,
						40,
						30,
						40,
						20,
						60,
						50,
						40
					]
				}, {
					name: "联盟广告",
					type: "line",
					smooth: true,
					lineStyle: {
						normal: {
							color: "#00d887",
							width: 2
						}
					},
					areaStyle: {
						normal: {
							color: new echarts.graphic.LinearGradient(
								0,
								0,
								0,
								1, [{
										offset: 0,
										color: "rgba(0, 216, 135, 0.4)"
									},
									{
										offset: 0.8,
										color: "rgba(0, 216, 135, 0.1)"
									}
								],
								false
							),
							shadowColor: "rgba(0, 0, 0, 0.1)"
						}
					},
					// 设置拐点 小圆点
					symbol: "circle",
					// 拐点大小
					symbolSize: 5,
					// 设置拐点颜色以及边框
					itemStyle: {
						color: "#00d887",
						borderColor: "rgba(221, 220, 107, .1)",
						borderWidth: 12
					},
					// 开始不显示拐点, 鼠标经过显示
					showSymbol: false,
					data: [
						130,
						10,
						20,
						40,
						30,
						40,
						80,
						60,
						20,
						40,
						90,
						40,
						20,
						140,
						30,
						40,
						130,
						20,
						20,
						40,
						80,
						70,
						30,
						40,
						30,
						120,
						20,
						99,
						50,
						20
					]
				}]
			};
			myChart.setOption(option);
			// 4. 让图表跟随屏幕自动的去适应
			window.addEventListener("resize", function() {
				myChart.resize();
			});
		})();
	</script>

</html>

希望对初次接触ECharts的开发者们有帮助

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
<p>ECharts (Enterprise Charts 商业产品图表) 提供商业产品常用图表,底层基于ZRender(一个全新的轻量级canvas类),创建了坐标系,图例,提示,工具箱等基础组件,并在此上构建出折线图、柱状图、散点图、K线图、饼图、雷达图、地图、和弦图、力导向布局图、仪表盘以及漏斗图,同时支持任意维度的堆积和多图表混合展现。</p><p>Echarts device Echarts explorer   支持IE6/7/8/9+,chrome、firefox、safari、opera   (IE8- power by excanvas )</p><p>特色 我们诚挚邀请你翻阅这份在线文档 《 Why ECharts ? 》 你可以从中更直观的体验到ECharts的特性以及快速浏览到所有图表类型。 *文档中展现的个别特性在IE8-中并没有得到支持,所以建议使用IE9+、chrome、safari、firefox或opera等现代浏览器阅读这份文档。</p><p>Echarts mix 混搭 混搭的图表会更具表现力也更有有趣味,ECharts提供的图表(共11类17种)支持任意混搭: 折线图(面积图)、柱状图(条形图)、散点图(气泡图)、K线图、 饼图(环形图)、雷达图、地图、和弦图、力导布局图、仪表盘、漏斗图。 混搭情况下一个标准图表:包含唯一图例、工具箱、数据区域缩放、值域漫游模块,一个直角坐标系(可包含一条或多条类目轴线,一条或多条值轴线,最多上下左右四条)</p><p>拖拽重计算 拖拽重计算特性(专利)带来了数据统计图表从未有过的用户体验,允许用户对统计数据进行有效的提取、整合,甚至在多个图表间交换数据,赋予了用户对数据进行挖掘、整合的能力。</p><p>Echarts 拖拽重计算 Echarts 数据数据图 如果你所呈现的数据足够让用户所关心,那么他们将不满足于查看可的图表,要去逐一迎合他们下载保存,数据分享,加工整合已有数据等等需求? 或许你只要给予一个“,”分隔的数据文本他们就懂了,这就是ECharts数据图!当然,你可以重载数据图的输出方法,用你独特的方式去呈现数据。 如果你的用户足够的高端,你甚至可以打开数据图的编辑功能,跟拖拽重计算相比,这可是批量的数据修改!</p><p>动态类型切换 很多图表类型本身所表现的能力是相似的,但由于数据差异、表现需求和个人喜好的不同导致最终图表所呈现的张力又大不一样,比如折线图和柱状图的选择,系列数据是堆叠还是平铺总是让人头疼。 ECharts提供了动态类型切换,让用户随心所欲的切换到他所需要的图表类型和堆叠状态。</p><p>Echarts 动态类型切换 Echarts 图例开关 图例开关 多系列数据的同时展现呈现出丰富内容,但如何让用户切换到他所关心的个别系列上? ECharts提供了方便快捷的多维度图例开关,可以随时切换到你所关心的数据系列。</p><p>数据区域选择 数据可以是无限的,但显示空间总是有限的,数据区域选择组件提供了大数据量中漫游的能力,让用户选择并呈现他所关心的数据区域。 配合随动的均值(极值)标线,标注展现强大的数据剖析能力。 try this 》</p><p>Echarts 数据区域缩放 Echarts 多图联动 多图联动 多系列数据在同一个直角系内同时展现有时候会产生混乱,但他们又存在极强的关联意义不可分离? ECharts提供了多图联动的能力(connect),能做的可不仅仅是鼠标划过的详情显示,连接的多个图表会共享组件事件并且实现了保存图片时的自动拼接。 try this 》</p><p>值域漫游 基于坐标的图表(如地图、散点图)通过色彩变表现数值的大小能直观形象的展示数据分布。 但如何聚焦到我所关心的数值上?我们创造了称为值域漫游的功能,让你可以轻松进行数值筛选。</p><p>Echarts 值域漫游 Echarts 炫光特效 炫光特效 我们知道,很多时候我们需要一些吸引眼球的能力。 ECharts支持标注标线的炫光特效,特别用在地图上轻松实现百度迁徙数据特效</p><p>大规模数据模式 如何展现成千上百万的数据?貌似除了用专业的统计工具(如MATLAB)外别无选择? 不,在拥有如此多交互特性下ECharts依然可以做到直角系图表(折、柱、散点、K线)20万数据秒级内渲染完成,这对于常规的应用,用现代浏览器就足以轻松展现百万规模的数据!</p><p>Echarts 大规模散点图 Echarts 动态数据添加 Echarts 动态数据添加 动态数据添加 如果你需要展示有实时变数据,相信这个动态接口会对你很有帮助。</p><p>标线辅助 趋势线?平均线?上升通道?支持位?专业的你自然知道该怎么

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codingWeb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值