JavaScript可视化与Echarts详细介绍

目录
  • 一、可视化介绍
  • 二、可视化库介绍
  • 三、Echarts
    • Echarts引入和使用
    • 了解基础配置

一、可视化介绍

  • 可视化:将数据用图表展示出来,让数据更加直观、让数据特点更加突出
  • 应用场景:营销数据、生产数据、用户数据

二、可视化库介绍

常见的数据可视化库:

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

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

三、Echarts

Echarts引入和使用

下载echarts(库) 引入文件到html页面中

<script src="./src/echarts.js"></script>

准备一个DOM容器

<style>
    .box {
		width: 400px;
		height: 400px;
		cursor: pointer;
	}
</style>
<div class='box'></div>

初始化一个echarts对象

var box = document.querySelector(".box")
var echarts1 = echarts.init(box)

指定配置项和数据

var option = {
	title: {
		text: 'ECharts 入门示例'
	},
	tooltip: {},
	legend: {
		data: ['销量']
	},
	xAxis: {
		data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
	},
	yAxis: {},
	series: [{
		name: '销量',
		type: 'bar',
		data: [5, 20, 36, 10, 10, 20]
	}]
}

将配置项设置给echarts实例对象

echarts1.setOption(option)

了解基础配置

title:标题组件,包含主标题和副标题

tooltip:提示框组件

legend:图例组件

series

系列列表:每个系列通过 type 决定自己的图表类型

xAxis:直角坐标系 grid 中的 x 轴

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

yAxis:直角坐标系 grid 中的 y 轴

grid:直角坐标系内绘图网格

color:调色盘颜色列表

注:不要求全部记忆,只需要知道怎么在官方文档上查找学习

官方文档:Documentation - Apache ECharts

(1)示例:标题组件title

              title: {
					show: true,          //是否显示标题组件
					text: '主标题',
					link: "http://www.baidu.com",   //主标题文本超链接
					textStyle: {                   //主标题的文本样式 相当于css的
						color: "blue",
						fontWeight: "100"
					},
					subtext: "副标题",
					subtextStyle: {               //副标题的文本样式
						color: "red",
						fontWeight: "100",
						fontSize: "20px"
					},
					textAlign: "auto",         //整体(包括 text 和 subtext)的水平对齐
					textVerticalAlign: "auto", //整体(包括 text 和 subtext)的垂直对齐
					padding: [5, 10],          //标题内边距
					left: 400,                 //title 组件离容器左侧的距离
					backgroundColor: "yellow"   //标题背景色,默认透明
				},

(2)示例:工具组件toolbox

                toolbox: {
					//配置工具
					feature: {
						mytool: {    //自定义的工具名字,只能以 my 开头
							show: true,
							title: "自定义扩展方法",
							icon: "image://https://img2.baidu.com/it/u=1814268193,3619863984&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1658941200&t=d5f42a41eab8af5c9929fcc6f9e1eff7",
							onclick: function() {
								console.log("点击事件")
							}
						},
						saveAsImage: {
							name: "保存"
						},
						restore: {      //配置项还原
						},
						dataView: { //数据视图工具,可展现当前图表所用的数据,编辑后可动态更新
						},
						dataZoom: {},    //数据区域缩放
						magicType: {      //动态类型切换
							type: ['line', 'bar', 'stack']
						}
					}
				},

(3)示例:提示框组件tooltip

            tooltip: {
					show: true,
					trigger: "axis", //触发类型 "none"||"axis"
					showContent: false,   // 是否显示提示框浮层
					alwaysShowContent: true,  //是否永远显示提示框内容
					triggerOn: "click",         //提示框触发的条件
					backgroundColor: "gold",
					textStyle: {
						color: "white"
					},
					axisPointer: {     //是配置坐标轴指示器的快捷方式
						type: "cross",  //指示器类型 line shadow none cross
						axis: "x",      //指示器的坐标轴
						snap: true,     //坐标轴指示器是否自动吸附到点上
                        label: {        //坐标轴指示器的文本标签
							show: true,
							color: "red",
						 	formatter: ({    //文本标签文字的格式化器
						 		value
						 	}) => {
								console.log(value)
						 		return `--${value}` //value*2
						 	}
						 }
					}
				},

(4)示例:图例组件legend

legend: {
					type: "scroll",     //图例的类型 plain普通图例 scroll可滚动翻页的图例
					orient: "vertical",  //图例列表的布局朝向 vertical horizontal
					data: [{
						name: '销量1',   //图例项的名称
						icon: "circle",   //图例项的 icon
						itemStyle: {
							color: "red"
						}
					}, {
						name: '销量2',
						icon: "rect",
						itemStyle: {
							color: "red"
						}
					}, {
						name: '纯利1',
						icon: "triangle",
						textStyle: {
							color: "red",
							fontSize: "20px"
						}
					}, {
						name: '纯利2',
						icon: "path://",   //'path://' 将图标设置为任意的矢量路径
						icon: "image://url",       //通过图片链接设置为图片
						icon:  "image://https://img2.baidu.com/it/u=1814268193,3619863984&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1658941200&t=d5f42a41eab8af5c9929fcc6f9e1eff7"   //通过图片编码设置为图片
					  }]
				   },

(5)示例:系列列表series

              series: [{
					name: "某某系列1",
					type: 'line',
					colorBy: "series", //按系列分配调色盘中的颜色,同一系列中的所有数据都是用相同的颜色
					symbol: "rect",     //标记的图形 设置拐点
					cursor: "move",
					label: {
						show: true    //是否显示标签文字
					},
					endLabel: {       //折线端点的标签
						show: true
					},
					labelLine: {
						show: true,   //是否显示连接线
						smooth: true    //是否平滑
					},
					lineStyle: {       //标签的视觉引导线配置
						color: "red",
						width: 2,
						join: "miter"  //设置2个长度不为0的相连部分如何连接在一起的属性
					},
					smooth: 0.3,
					data: [420, 432, 401, 434, 190, 130, 120],
				}, {
					name: "某某系列2",
					type: 'line',
					symbol: "arrow",
					symbolSize: 10,     // 拐点大小
					data: [860, 962, 961, 964, 1260, 1360, 1360],
				}]
			};

(6)示例:直角坐标系 grid 中的 x、y轴(类似)

 xAxis: {
     show: true;  //是否显示x轴
     data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']   //类目数据,在类目轴
     position:'top'   //x轴的位置
     name:'坐标轴的名称'
     axisTick: {
         show: false // 去除刻度线
     },
     axisLabel: {
         color: '#4c9bfd' // 文本颜色
     },
     axisLine: {
         show: false // 去除轴线
     },
     boundaryGap: false  // 去除轴内间距
 },

(7)蓝丁格尔玫瑰图

<style>
    .box {
      width: 500px;
      height: 500px;
    }
</style>
<div class="box"></div>
<script>
    var box = document.querySelector(".box")
    var ect = echarts.init(box)
    option = {
      title: {
        text: 'Nightingale Chart',
        subtext: 'Fake Data',
        left: 'center'
      },
      tooltip: {
        trigger: 'item',
        formatter: '{a} <br/>{b} : {c} ({d}%)'
      },
      toolbox: {
        show: true,
        feature: {
          mark: {
            show: true
          },
          dataView: {
            show: true,
            readOnly: false
          },
          restore: {
            show: true
          },
          saveAsImage: {
            show: true
          }
        }
      },
      series: [{
        name: '面积模式',
        type: 'pie',
        radius: [30, 110],
        center: ['25%', '50%'],
        roseType: 'radius',
        color: ['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff'],
        itemStyle: {
          borderRadius: 5
        },
        label: {
          show: false,
          fontSize: 10
        },
        emphasis: {
          label: {
            show: true
          }
        },
        labelLine: {
          // 连接扇形图线长
          length: 6,
          // 连接文字线长
          length2: 8
        },
        data: [{
            value: 20,
            name: '云南'
          },
          {
            value: 26,
            name: '北京'
          },
          {
            value: 24,
            name: '山东'
          },
          {
            value: 25,
            name: '河北'
          },
          {
            value: 20,
            name: '江苏'
          },
          {
            value: 25,
            name: '浙江'
          },
          {
            value: 30,
            name: '四川'
          },
          {
            value: 42,
            name: '湖北'
          }
        ]
      }, ]
    };
    ect.setOption(option)
</script>

效果图:

到此这篇关于JavaScript可视化与Echarts详细介绍的文章就介绍到这了,更多相关JavaScript可视化与Echarts内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JavaScript数据可视化:ECharts制作地图

    目录 概述 注意事项 一. 使用方式 二. 实现步骤 初步实现代码 效果: geo常见配置 添加上面配置之后的效果图: 显示某一个省份(河南省) 效果 不同区域显示不同颜色 地图和散点图的结合 总结 概述 地图在我们日常的数据可视化分析中是很常见的一种展示手段,不仅美观而且很大气.尤其是在大屏展示中更是扮演着必不可缺的角色 注意事项 一. 使用方式 1.百度地图API(高德地图API) 需要申请百度API 2.矢量地图 需要准备矢量地图数据 二. 实现步骤 1.ECharts最基本的代码结构 引

  • JavaScript可视化与Echarts详细介绍

    目录 一.可视化介绍 二.可视化库介绍 三.Echarts Echarts引入和使用 了解基础配置 一.可视化介绍 可视化:将数据用图表展示出来,让数据更加直观.让数据特点更加突出 应用场景:营销数据.生产数据.用户数据 二.可视化库介绍 常见的数据可视化库: D3.js:目前 Web 端评价最高的 Javascript 可视化工具库(入手难) ECharts.js:百度出品的一个开源 Javascript 数据可视化库 Highcharts.js:国外的前端数据可视化库,非商用免费,被许多国外

  • JavaScript的function函数详细介绍

    通过函数来封装任意多条语句,而且可以在任何地方.任何时间调用执行. 而我们的JavaScript脚本语言比较特殊,相对于C语言,它的参数是不需要数据类型加持的.返回值return,我就不过多描述,他是和 C语言通的,如果没写他就会自动返回undefined function fun(x,y){ } //写成这样就可以声明一个函数 以我的理解他就是以对象的形式来传入参数,通过对象的各项属性值(引用类型的值),来作为我的实际参数, 例如我有以下做法: function fun(x, y) { //

  • JavaScript可迭代对象详细介绍

    目录 1.迭代器 2.迭代器接口与可迭代对象 3.自定义可迭代对象 3.1.可迭代的Range对象 3.2.使用Generator函数作为迭代器接口 3.3.可迭代的List 3.3.可迭代的迭代器 4.可迭代对象的意义 5.使用可迭代对象 6.后记 1.迭代器 迭代器是借鉴C++等语言的概念,迭代器的原理就像指针一样,它指向数据集合中的某个元素,你可以获取它指向的元素,也可以移动它以获取其它元素.迭代器类似于数组中下标的拓展,各种数据结构,如链表(List).集合(Set).映射(Map)都有

  • javascript面向对象入门基础详细介绍

    什么是对象 简单点说,编程语言中的对象是对现实中事物的简化.例如,我们一个人就是一个对象,但是编程语言很难完全描述一个这样复杂的对象.所以我们必须做出简化,首先,将人简化成属性和行为的组合,然后仅仅保留对程序有意义的几个属性以及行为.例如,我们做一个统计某学校的人的身高的程序,那么我们在这个程序中就可以把人的行为省略掉,只保留行为,并且只保留身高这一个属性.这样,我们就得到了一个最简单的对象. JavaScript字符串对象 对象的属性 其实我们之前在HTML DOM中已经就是在使用对象了.例如

  • JavaScript中的ArrayBuffer详细介绍

    相信每一个 javascript 学习者,都会去了解 JS 的各种基本数据类型,数组就是数据的组合,这是一个很基本也十分简单的概念,他的内容没多少,学好它也不是件难事情.但是本文着重要介绍的并不是我们往常看到的 Array,而是 ArrayBuffer. 我写的很多东西都是因为要完成某些特定的功能而刻意总结的,可以算是备忘,本文也是如此!前段时间一直在研究 Web Audio API 以及语音通信相关的知识,内容侧重于音频流在 AudioContext 各个节点之间的流动情况,而现在要摸清楚音频

  • Javascript 链式作用域详细介绍

     Javascript 链式作用域 其实对于Javascript链式作用域的描述,包括,JS权威指南,都有些太冗长了--但是很准确:JavaScript中的函数运行在他们被定义的作用域里,而不是他们被执行的作用域里. 这句话有点难懂,但程序的设计,基本都是为了简单,便于理解的.记住JS中经典的一句话是,一切皆对象. 说白了链式作用域,其实就是Javascript的一个特性:子函数中可以访问父函数的所有变量.当然也包括全局变量window(一般的函数定义function a(){},其实都是win

  • Javascript单元测试框架QUnitjs详细介绍

    一.什么是 QUnit QUnit(http://qunitjs.com/) 是一个非常强大的javascript单元测试框架,可以帮你调试代码.它是由 jQuery 团队的成员写的,而且是 jQuery 的官方测试套装.但QUnit一般是足以测试任何常规 javascript 代码,它甚至可能通过一些 javascript 引擎比如 Rhino 或 V8 来测试服务器端 JavaScript.如果你不熟悉"单元测试"的概念,请不要担心.这不是很难理解的: 复制代码 代码如下: 在计算

  • Javascript 事件冒泡机制详细介绍

    1. 事件 在浏览器客户端应用平台,基本生都是以事件驱动的,即某个事件发生,然后做出相应的动作. 浏览器的事件表示的是某些事情发生的信号.事件的阐述不是本文的重点,尚未了解的朋友,可以访问W3school教程 进行了解,这将有助于更好地理解以下的内容 . 2.冒泡机制 什么是冒泡呢? 下面这个图片大家应该心领神会吧,气泡从水底开始往上升,由深到浅,升到最上面.在上升的过程中,气泡会经过不同深度层次的水. 相对应地:这个气泡就相当于我们这里的事件,而水则相当于我们的整个dom树:事件从dom 树的

  • Javascript基础 函数“重载” 详细介绍

    Javascript不像其他编程语言一样具有函数签名(什么是函数签名,简单的说就是说函数的接受参数类型和参数个数,也有人认为返回类型也应该包括.具体概念大家可以到网上查询). 所以Javascript是不能像其他语言一样实现方法名相同,参数个数不同-的这类重载的,不信你可以试试: 复制代码 代码如下: function show(){             alert("1");         }         function show(num1){             a

  • javascript 分号总结及详细介绍

    javascript每条语句都是以分号结束,但由于javascript具有分号自动插入规则,所有不同的编程人员有不同的习惯,有的加分号,有的不加分号,那么到底加分号好还是不加分号好?本文章向大家探讨javascript每条语句该不该加分号. javascript的分号代表语句的结束符,但由于javascript具有分号自动插入规则,所以它是一个十分容易让人模糊的东西,在一般情况下,一个换行就会产生一个分号,但实际情况却不然,也就是说在javascript中换行可能产生分号,也可能不产生,是否自动

随机推荐