echarts高级应用

目录

一、显示相关

1.1、主题

1.1.1、内置主题

1.1.2、自定义主题

1.2、调色盘和颜色渐变

1.2.1、主题调色盘<全局调色盘<局部调色盘

1.2.2、线性渐变(linear)、径向渐变(radial)

1.3、直接样式和高亮样式

1.3.1、直接样式

1.3.2、高亮样式

1.4、图表自适应

二、动画的使用

2.1、图表加载动画

2.2、图表增量动画( myChart.setOption)

2.3、图表动画的配置项(animation、animationDuration、animationEasing、animationThreshold)

三、总结(交互API)

3.1、全局Echarts对象的常用方法

3.1.1、init()

3.1.2、registerTheme()

3.1.3、registerMap()

3.1.4、connect()

3.2、echartsInstance对象的常用方法

3.2.1、setOption

3.2.2、resize

3.2.3、on\off

3.2.4、dispatchAction

3.2.5、clear

3.2.6、dispose

一、显示相关

1.1、主题

1.1.1、内置主题

      init方法有两个参数: 第一个参数是一个dom节点,第二个参数是使用的主题;

      默认两套主题: light、dark

let myChart = this.$echarts.init(document.getElementById("main1"),'light');
let myChart = this.$echarts.init(document.getElementById("main1"),'dark');

1.1.2、自定义主题

echarts官网的顶部栏:下载下拉栏中的主题下载,进入后找到定制主题按钮进去,左侧点击下载主题按钮,普通html项目选择JS版本,得到infographic.js文件,放入项目文件夹中。vue项目则选择JSON 版本下载。然后在文件里改成自己想要的颜色即可!或者在主题编辑器”里选好再下载!

网址:主题编辑器 - Apache ECharts

//================引入=======================
import * as ets from "echarts";
import theme from "../../utils/theme.json";
//=================方法里使用=======================
ets.registerTheme("theme", theme); // 注册主题(参数1: 使用时的别名 参数2: 主题配置文件)
let myChart = ets.init(document.getElementById("main1"), theme);

1.2、调色盘和颜色渐变

调色盘是一组颜色,图形、系列会自动从其中选择颜色。

1.2.1、主题调色盘<全局调色盘<局部调色盘

(1)、主题调色盘(以“JS版本”为例):

(1)、全局调色盘:

color: ["red", "green", "blue", "skyblue", "purple"],
xAxis: {.......},
yAxis: {.......},

(1)、局部调色盘:

        series: [{type: "pie", //决定图标类型(bar、line、pie)color: ["red", "green", "blue", "skyblue", "purple"],},],

1.2.2、线性渐变(linear)、径向渐变(radial)

        series: [{itemStyle: {color: {type: "linear",x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0, //0%处颜色color: "red",},{offset: 1, //100%处颜色color: "blue",},],},// color: {//   type: "radial",//   x: 0.5,//   y: 0.5,//   r: 0.5,//   colorStops: [//     {//       offset: 0, //0%处颜色//       color: "red",//     },//     {//       offset: 1, //100%处颜色//       color: "blue",//     },//   ],// },},},],

1.3、直接样式和高亮样式

1.3.1、直接样式

itemStyle、textStyle、lineStyle、areaStyle、label

1.3.2、高亮样式

emphasis中包裹itemStyle、textStyle、lineStyle、areaStyle、label

以饼图为例:

pieData: [{name: "淘宝",value: 20,itemStyle: { color: "yellow" },label: { color: "green" },emphasis: {itemStyle: { color: "purple" },label: { color: "red" },},},{ name: "京东", value: 30 },{ name: "华为", value: 20 },{ name: "拼多多", value: 10 },{ name: "唯品会", value: 20 },],
series: [{type: "pie",data: this.pieData,},],

1.4、图表自适应

  监听window窗口大小变化的事件里,调用echarts实例对象的resize方法 

      // window.onresize = function () {//   myChart.resize();// };window.onresize =myChart.resize

二、动画的使用

2.1、图表加载动画

显示加载动画(myChart.showLoading())、隐藏加载动画(myChart.hideLoading())

    getDayAttendanceRate() {let myChart = this.$echarts.init(this.$refs.myChart);myChart.showLoading();//获取数据前,显示加载动画keepCountApi.getDayAttendanceRate().then((res) => {if (res.status) {myChart.hideLoading();//当服务器数据获取成功后,隐藏加载动画this.optionFun(res.data);} else {this.$message.error(res.msg);}}).catch(() => {});},

2.2、图表增量动画( myChart.setOption)

  数据的更新都通过setOption实现,echarts会自动找到数组之间的差异然后通过‘动画’去表现数据的变化。

  mounted() {this.optionFun(this.list);},methods: {updateData() {//修改数据let newArr = [{ time: "一班", value: 100 },{ time: "二班", value: 200 },{ time: "三班", value: 290 },{ time: "四班", value: 300 },{ time: "五班", value: 110 },];this.optionFun(newArr);},addData() {//增加数据this.list.push({ time: "增加班级", value: 160 });this.optionFun(this.list);},optionFun(arr) {this.option = {xAxis: {type: "category",data: arr.map((d) => d.time),},yAxis: {type: "value", //数值轴},series: [{barWidth: 30,type: "bar",data: arr.map((d) => d.value),},],};let myChart = this.$echarts.init(this.$refs.echartsMain);myChart.setOption(this.option);//因为执行了它,数据才会变化!window.onresize = myChart.resize;},},

2.3、图表动画的配置项(animation、animationDuration、animationEasing、animationThreshold)

        animation: true,//是否开启动画// animationDuration:7000,//动画时长animationDuration: function (arg) {return 2000 * arg;},animationEasing:'bounceOut',//缓动动画("回弹效果")animationThreshold:7,//动画阈值(元素数量>该值时会关闭动画)xAxis: {......},yAxis: {......},

三、总结(交互API)

网址:Documentation - Apache ECharts

3.1、全局Echarts对象的常用方法

全局Echarts对象是引入echarts.js文件之后就可以直接使用的

3.1.1、init()

初始化Echarts实例对象,使用主题

3.1.2、registerTheme()

注册主题,只有注册过的主题,才能在init方法中使用该主题

3.1.3、registerMap()

(1)、注册地图数据

      $.get("json/map/china.json", function (chinajson) {echarts.registerMap("china", chinajson);});

(2)、geo组件使用地图数据

      var option = {geo: {type: "map",map: "china",},};

3.1.4、connect()

  假设一个页面中有多个独立的图表,每个图标都会对应一个echarts实例对象,那么connect()可以实现多图关联,实际使用场景如下:

保存图片的自动拼接、刷新按钮、重置按钮、提示框联动、图例选择、数据范围修改....

    echarts.connect([myChart,myChart2])

3.2、echartsInstance对象的常用方法

echartsInstance对象是通过echarts.init方法调用之后得到的

3.2.1、setOption

  (1)、设置或修改图表实例的配置项以及数据

  (2)、可以多次调用该方法,会合并新旧数据(见增量动画)

3.2.2、resize

  (1)、重新计算和绘制图表

  (2)、一般和window对象的resize事件结合使用(见图表自适应)

3.2.3、on\off

  (1)、绑定或解绑事件处理函数

  (2)、鼠标事件、Echarts事件

myChart.on('click', function (params) {console.log(params);
});
myChart.off('click')

3.2.4、dispatchAction

  (1)、触发某些行为

  (2)、使用代码模拟用户的行为

     myChart.dispatchAction({type:'highlight',//事件类型seriesIndex:0,//图表索引dataIndex:1//图表中哪一项高亮})

3.2.5、clear

  (1)、清空实例中所有的组件和图表(myChart.clear()

  (2)、清空后可以再次setOption

3.2.6、dispose

   销毁实例myChart.dispose()),销毁后无法再次setOption

有个水球效果,可以参考: https://www.cnblogs.com/tu-0718/p/16722158.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/19183.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件架构设计属性之三:结构性属性浅析

文章目录 引言一、结构性属性的定义二、结构性属性的关键要素1. 组件化2. 模块化3. 层次化4. 接口定义5. 数据流6. 依赖管理 三、结构性属性的设计原则1. 高内聚低耦合2. 松耦合3. 清晰的接口4. 可维护性5. 可扩展性 四、结构性属性的实现策略1. 组件划分2. 模块化设计3. 接口设…

【AREngine BUG 解决方法】无法获取有效的相机图像尺寸

近期拿了一台 华为mate20 Pro的手机&#xff0c;在运行AR示例的过程中出现了黑屏。 问题排查 SDK版本&#xff1a;com.huawei.hms:arenginesdk:3.7.0.3 定位 经排查&#xff0c;发现(ARCamera对象的相机内参) getImageDimensions()返回的图像尺寸的width和height都为0。 这…

Kong api网关实战教程

1. kong介绍 Kong是一款基于OpenResty(NginxLua模块)编写的高可用、易扩展的&#xff0c;由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgresQL构建的&#xff0c;能据供易于使用的RSTTAP[来操作和配置API管理系统&#xff0c;所以它可以水平扩…

【上】王树森《小红书推荐系统公开课》- 课程笔记(推荐系统基础、召回、排序)

写在前面 本文为王树森老师《小红书推荐系统公开课》的课程笔记 课程来源&#xff1a;ShusenWang的个人空间-ShusenWang个人主页-哔哩哔哩视频 (bilibili.com)课程资料&#xff1a;GitHub - wangshusen/RecommenderSystem 由于篇幅较长&#xff0c;分为【上】【下】两篇文章…

【busybox记录】【shell指令】unlink

目录 内容来源&#xff1a; 【GUN】【unlink】指令介绍 【busybox】【unlink】指令介绍 【linux】【unlink】指令介绍 使用示例&#xff1a; 删除文件 - 默认 常用组合指令&#xff1a; 指令不常用/组合用法还需继续挖掘&#xff1a; 内容来源&#xff1a; GUN &#x…

深入解析Web前端三大主流框架:Angular、React和Vue

Web前端三大主流框架分别是Angular、React和Vue。下面我将为您详细介绍这三大框架的特点和使用指南。 Angular 核心概念: 组件(Components): 组件是Angular应用的构建块,每个组件由一个带有装饰器的类、一个HTML模板、一个CSS样式表组成。组件通过输入(@Input)和输出(…

【OrangePi AIpro】开箱初体验以及OAK深度相机测试

1. 简介 Orangepi AIPRO 是一款采用昇腾AI技术路线&#xff0c;集成4核64位处理器AI处理器的单板计算机&#xff0c;集成图形处理器&#xff0c;支持8TOPS AI算力&#xff0c;拥有8GB/16GB LPDDR4X&#xff0c;可以外接eMMC模块&#xff0c;支持双4K高清输出。 Orange Pi AIpr…

数字图像处理系列 | 线性滤波(高斯滤波)(3)

我们知道了什么是 线性平移不变系统是在做卷积操作 之后&#xff0c;我们发展出了一些非常简单的 线性滤波&#xff0c; 去增强图片&#xff0c;提取图片特征 文章目录 1. 卷积如何在离散图片中工作的Vis 原图和mask做卷积时发生了什么首先&#xff0c;如何得到 (i.j)位置的卷积…

操作系统中的内存管理

虚拟内存 操作系统会提供一种机制&#xff0c;将不同进程的虚拟地址和不同内存的物理地址映射起来。如果程序要访问虚拟地址的时候&#xff0c;由操作系统转换成不同的物理地址&#xff0c;这样不同的进程运行的时候&#xff0c;写入的是不同的物理地址&#xff0c;这样就不会冲…

Slurm集群使用基础

Introduction 我们在做生物信息分析时&#xff0c;对于大规模的上游数据的处理&#xff0c;一般需要在大型服务器或集群上进行。我最早接触并使用的是一个基于SLURM调度系统的集群&#xff0c;在此记录一下基础使用方法。 高性能计算集群&#xff08;High-Performance Comput…

【渗透测试】|文件上传

1、安装使用蚁剑 https://blog.csdn.net/weixin_42474304/article/details/116376746 1、登陆dvwa,进入初级文件上传&#xff0c;上传一句话木马文件cmd.php&#xff0c; //cmd.php <?php eval($_POST[ccit]); ?> //eval: 执行命令的函数 //ccit:一句话木马文件的参数…

渗透测试工具Cobalt strike-2.CS基础使用

三、结合metasploit,反弹shell 在kali中开启使用命令开启metasploit msfconsole ┌──(root㉿oldboy)-[~] └─# msfconsole --- msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp --- msf6 exploit(multi/handler) > show …

什么是访问控制漏洞

什么是AC Bugs&#xff1f; 实验室 Vertical privilege escalation 仅通过隐藏目录/判断参数来权限控制是不安全的&#xff08;爆破url/爬虫/robots.txt/Fuzz/jsfinder&#xff09; Unprotected functionality 访问robots.txt 得到隐藏目录&#xff0c;访问目录 &#xff0c;…

基于Visual Studio版本的AI编程助手

Visual Studio 是一个出色的 IDE,可用于构建适用于 Windows、Mac、Linux、iOS 和 Android 的丰富、精美的跨平台应用程序。 使用一系列技术(例如 WinForms、WPF、WinUI、MAUI 或 Xamarin)构建丰富。 1、安装 点击上方工具栏拓展选项,选择管理拓展选项 接着在联机页面中搜索&q…

基于51单片机的室内空气质量检测-仿真设计

本设计是基于单片机的空气质量检测设计&#xff0c;主要实现以下功能&#xff1a; 可实现通过SGP30测量二氧化碳及甲醛浓度&#xff0c;当超过设置的最大值时&#xff0c;进行报警及通风和净化空气处理 可实现通过MQ-4测量甲烷浓度&#xff0c;当超过设置的最大值时&#xff0…

压力测试JMeter

压力测试JMeter 1 下载JMeter1.1 测试计划1.2 JMeter Address Already in use 错误解决1.3 java 内存模型1.4 jconsole与jvisualvm1.5 优化方向1.6 Nginx动静分离 1 下载JMeter 官网地址&#xff1a;https://jmeter.apache.org/download_jmeter.cgi 运行apache-jmeter-5.6.3\…

HaloDB 的 Oracle 兼容模式

↑ 关注“少安事务所”公众号&#xff0c;欢迎⭐收藏&#xff0c;不错过精彩内容~ 前倾回顾 前面介绍了“光环”数据库的基本情况和安装办法。 哈喽&#xff0c;国产数据库&#xff01;Halo DB! 三步走&#xff0c;Halo DB 安装指引 ★ HaloDB是基于原生PG打造的新一代高性能安…

代码随想录训练营Day 43|力扣343. 整数拆分、96.不同的二叉搜索树

1.整数拆分 代码随想录 视频讲解&#xff1a;动态规划&#xff0c;本题关键在于理解递推公式&#xff01;| LeetCode&#xff1a;343. 整数拆分_哔哩哔哩_bilibili 代码&#xff1a; class Solution { public:int integerBreak(int n) {// dp[i] 拆分数字i所获得的最大乘积为d…

景源畅信:抖音小店如何开橱窗?

在当今数字化时代&#xff0c;社交媒体平台不仅仅是人们交流和分享生活的工具&#xff0c;更成为了商家们展示和销售产品的重要场所。抖音作为一款流行的短视频社交应用&#xff0c;其内置的电商功能——抖音小店&#xff0c;为众多商家和个人提供了便捷的在线销售途径。其中&a…

使用NuScenes数据集生成ROS Bag文件:深度学习与机器人操作的桥梁

在自动驾驶、机器人导航及环境感知的研究中&#xff0c;高质量的数据集是推动算法发展的关键。NuScenes数据集作为一项开源的多模态自动驾驶数据集&#xff0c;提供了丰富的雷达、激光雷达&#xff08;LiDAR&#xff09;、摄像头等多种传感器数据&#xff0c;是进行多传感器融合…