Apache ECharts介绍(基于JavaScript开发的开源数据可视化库,用于创建交互式图表)
文章目录
- Apache ECharts 介绍
- 功能概览
- 多种图表类型
- - **基础类型**:折线图、柱状图、饼图、散点图。
- - **高级类型**:雷达图、热力图、桑基图、K线图。
- - **地理可视化**:支持地图(如中国、世界)和地理坐标系。
- - **3D支持**:3D柱状图、3D散点图,提升视觉效果。
- 交互性
- - **数据缩放**:可放大查看数据细节。
- - **工具箱**:内置数据视图、图表切换、图片导出功能。
- - **事件处理**:支持鼠标和触摸事件,允许自定义交互逻辑。
- 动画效果
- - **过渡动画**:图表加载和更新时平滑切换。
- - **自定义动画**:可调整动画样式,增强体验。
- 数据处理
- - **大数据优化**:高效渲染海量数据。
- - **动态更新**:支持实时数据刷新,适合动态场景。
- 响应式设计
- - **自适应布局**:图表随容器大小自动调整,适配手机和桌面。
- 主题与样式
- - **内置主题**:暗黑模式、经典模式等。
- - **自定义样式**:可调整颜色、字体、线条。
- 使用方法
- 1. 引入 ECharts
- - **CDN 方式**:
- - **npm 方式**:
- 2. 创建 DOM 容器
- 3. 初始化图表
- 4. 配置选项
- 5. 应用配置
- 完整示例
- 发展历程
- 初始阶段(2013 年)
- 功能增强(2014-2016 年)
- 社区活跃(2017-2019 年)
- 现代化发展(2020 年至今)
- 总结
Apache ECharts 介绍
Apache ECharts 是一个强大的开源数据可视化库,基于 JavaScript 开发,适合创建交互式图表。它由 Apache 软件基金会维护,广泛应用于 Web 开发,尤其在需要展示复杂数据的场景中。对于刚接触数据可视化的小白来说,ECharts 提供了简单易用的接口,同时具备深度定制的能力。以下将详细介绍其功能、使用方法以及发展历程。
功能概览
ECharts 的功能丰富多样,既适合初学者快速上手,也能满足高级开发者的复杂需求。以下是主要特点:
多种图表类型
- 基础类型:折线图、柱状图、饼图、散点图。
- 高级类型:雷达图、热力图、桑基图、K线图。
- 地理可视化:支持地图(如中国、世界)和地理坐标系。
- 3D支持:3D柱状图、3D散点图,提升视觉效果。
交互性
- 数据缩放:可放大查看数据细节。
- 工具箱:内置数据视图、图表切换、图片导出功能。
- 事件处理:支持鼠标和触摸事件,允许自定义交互逻辑。
动画效果
- 过渡动画:图表加载和更新时平滑切换。
- 自定义动画:可调整动画样式,增强体验。
数据处理
- 大数据优化:高效渲染海量数据。
- 动态更新:支持实时数据刷新,适合动态场景。
响应式设计
- 自适应布局:图表随容器大小自动调整,适配手机和桌面。
主题与样式
- 内置主题:暗黑模式、经典模式等。
- 自定义样式:可调整颜色、字体、线条。
使用方法
ECharts 的上手门槛低,通过几个简单步骤即可生成图表。以下是详细流程和示例:
1. 引入 ECharts
- CDN 方式:
<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
- npm 方式:
npm install echarts
2. 创建 DOM 容器
在 HTML 中定义一个容器,用于承载图表:
<div id="chart" style="width: 600px; height: 400px;"></div>
3. 初始化图表
通过 JavaScript 初始化 ECharts 实例:
var myChart = echarts.init(document.getElementById('chart'));
4. 配置选项
设置图表的数据和样式,例如一个柱状图:
var option = {title: { text: '销量统计' },tooltip: {},xAxis: { data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'] },yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]
};
5. 应用配置
将配置应用到图表:
myChart.setOption(option);
完整示例
以下是一个简单的柱状图实现:
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>ECharts 示例</title><script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
</head>
<body><div id="chart" style="width: 600px; height: 400px;"></div><script>var myChart = echarts.init(document.getElementById('chart'));var option = {title: { text: '销量统计' },tooltip: {},xAxis: { data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'] },yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]};myChart.setOption(option);</script>
</body>
</html>
运行后,将显示一个展示销量的柱状图,鼠标悬停可查看数据详情。
发展历程
ECharts 从一个小项目成长为全球知名的可视化工具,其发展经历了几个关键阶段:
初始阶段(2013 年)
- 由百度团队开发并开源,基于 Canvas 提供基础图表功能。
功能增强(2014-2016 年)
- 引入 SVG 渲染,提升兼容性和性能。
- 新增地图、热力图等图表类型,完善动画和交互。
社区活跃(2017-2019 年)
- 加入 Apache 基金会,成为孵化项目。
- 发布 ECharts 4.0,引入数据集组件,简化数据处理。
- 社区壮大,文档和示例日益丰富。
现代化发展(2020 年至今)
- ECharts 5.0 发布,优化移动端支持和动画效果。
- 持续提升大数据性能,扩展应用场景。
- 成为全球范围内最受欢迎的开源可视化库之一。
总结
Apache ECharts 凭借丰富的图表类型、强大的交互性和优异的性能,成为数据可视化的理想选择。对于小白来说,它易于上手,通过简单配置即可生成图表;对于进阶用户,它提供了深度定制和动态数据支持。从 2013 年诞生至今,ECharts 在技术和社区推动下不断进化,适用于从简单报表到复杂仪表盘的各种场景。无论是初学者还是专业开发者,都能从中找到适合自己的解决方案。
相关文章:
Apache ECharts介绍(基于JavaScript开发的开源数据可视化库,用于创建交互式图表)
文章目录 Apache ECharts 介绍功能概览多种图表类型- **基础类型**:折线图、柱状图、饼图、散点图。- **高级类型**:雷达图、热力图、桑基图、K线图。- **地理可视化**:支持地图(如中国、世界)和地理坐标系。- **3D支持…...

最新版本TOMCAT+IntelliJ IDEA+MAVEN项目创建(JAVAWEB)
前期所需: 1.apache-tomcat-10.1.18-windows-x64(tomcat 10.1.8版本或者差不多新的版本都可以) 2.IntelliJ idea 24年版本 或更高版本 3.已经配置好MAVEN了(一定先配置MAVEN再搞TOMCAT会事半功倍很多) 如果有没配置…...
Linux - 进程通信
一、管道 管道是一种进程间通信(IPC)机制,用于在进程之间传递数据。它的本质是操作系统内核维护的一个内存缓冲区,配合文件描述符进行数据的读写。尽管管道的核心是内存缓冲区,但操作系统通过对管道的实现,…...

使用 Arduino 的 WiFi 控制机器人
使用 Arduino 的 WiFi 控制机器人 这次我们将使用 Arduino 和 Blynk 应用程序制作一个 Wi-Fi 控制的机器人。这款基于 Arduino 的机器人可以使用任何支持 Wi-Fi 的 Android 智能手机进行无线控制。 为了演示 Wi-Fi 控制机器人,我们使用了一个名为“Blynk”的 Andr…...

网络安全等级保护2.0 vs GDPR vs NIST 2.0:全方位对比解析
在网络安全日益重要的今天,各国纷纷出台相关政策法规,以加强信息安全保护。本文将对比我国网络安全等级保护2.0、欧盟的GDPR以及美国的NIST 2.0,分析它们各自的特点及差异。 网络安全等级保护2.0 网络安全等级保护2.0是我国信息安全领域的一…...
verb words
纠正correct remedy 修正modify 协商 confer 磋商/谈判 negotiate 通知notice notify *宣布announce 声明declare 宣告 declare *颁布 promulgate /introduce 协调coordinate 评估evaluate assess 撤离evacuate *规定stipulate 参与participate, 涉及refer…...

unity console日志双击响应事件扩展
1 对于项目中一些比较长的日志,比如前后端交互协议具体数据等,这些日志内容可能会比较长,在unity控制面板上查看不是十分方便,我们可以对双击事件进行扩展,将日志保存到一个文本中,然后用系统默认的文本查看…...
维度建模维度表技术基础解析(以电商场景为例)
维度建模维度表技术基础解析(以电商场景为例) 维度表是维度建模的核心组成部分,其设计直接影响数据仓库的查询效率、分析灵活性和业务价值。本文将从维度表的定义、结构、设计方法及典型技术要点展开,结合电商场景案例,深入解析其技术基础。 1. 维度表的定义与作用 定义…...

Leetcode 264-丑数/LCR 168/剑指 Offer 49
题目描述 我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 示例: 说明: 1 是丑数。 n 不超过1690。 题解 动态规划法 根据题意,每个丑数都可以由其他较小的丑数通过乘以 2 或 3 或 5 得到…...
阿里云MaxCompute面试题汇总及参考答案
目录 简述 MaxCompute 的核心功能及适用场景,与传统数据仓库的区别 解释 MaxCompute 分层架构设计原则,与传统数仓分层有何异同 MaxCompute 的存储架构如何实现高可用与扩展性 解析伏羲(Fuxi)分布式调度系统工作原理 盘古(Pangu)分布式存储系统数据分片策略 计算与存…...
笔记:Directory.Build.targets和Directory.Build.props的区别
一、目的:分享Directory.Build.targets和Directory.Build.props的区别 Directory.Build.targets 和 Directory.Build.props 是 MSBuild 的两个功能,用于在特定目录及其子目录中的所有项目中应用共享的构建设置。它们的主要区别在于应用的时机和用途。 二…...
istio入门到精通-2
上部分讲到了hosts[*] 匹配所有的微服务,这部分细化一下 在 Istio 的 VirtualService 配置中,hosts 字段用于指定该虚拟服务适用的 目标主机或域名。如果使用具体的域名(如 example.com),则只有请求的主机 域名与 exa…...

第5章:vuex
第5章:vuex 1 求和案例 纯vue版2 vuex工作原理图3 vuex案例3.1 搭建vuex环境错误写法正确写法 3.2 求和案例vuex版细节分析源代码 4 getters配置项4.1 细节4.2 源代码 5 mapState与mapGetters5.1 总结5.2 细节分析5.3 源代码 6 mapActions与mapMutations6.1 总结6.2…...
[Python入门学习记录(小甲鱼)]第5章 列表 元组 字符串
第5章 列表 元组 字符串 5.1 列表 一个类似数组的东西 5.1.1 创建列表 一个中括号[ ] 把数据包起来就是创建了 number [1,2,3,4,5] print(type(number)) #返回 list 类型 for each in number:print(each) #输出 1 2 3 4 5#列表里不要求都是一个数据类型 mix [213,"…...

Docker 学习(四)——Dockerfile 创建镜像
Dockerfile是一个文本格式的配置文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。有了Dockerfile,当我们需要定制自己额外的需求时,只需在D…...

Java多线程与高并发专题——为什么 Map 桶中超过 8 个才转为红黑树?
引入 JDK 1.8 的 HashMap 和 ConcurrentHashMap 都有这样一个特点:最开始的 Map 是空的,因为里面没有任何元素,往里放元素时会计算 hash 值,计算之后,第 1 个 value 会首先占用一个桶(也称为槽点ÿ…...
LeetCode hot 100—二叉树的中序遍历
题目 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示例 3: 输入:root […...
代码随想录算法训练营第35天 | 01背包问题二维、01背包问题一维、416. 分割等和子集
一、01背包问题二维 二维数组,一维为物品,二维为背包重量 import java.util.Scanner;public class Main{public static void main(String[] args){Scanner scanner new Scanner(System.in);int n scanner.nextInt();int bag scanner.nextInt();int[…...

与中国联通技术共建:通过obdiag分析OceanBase DDL中的报错场景
中国联通软件研究院(简称联通软研院)在全面评估与广泛调研后,在 2021年底决定采用OceanBase 作为基础,自研分布式数据库产品CUDB(即China Unicom Database,中国联通数据库)。目前,该…...

IDEA 接入 Deepseek
在本篇文章中,我们将详细介绍如何在 JetBrains IDEA 中使用 Continue 插件接入 DeepSeek,让你的 AI 编程助手更智能,提高开发效率。 一、前置准备 在开始之前,请确保你已经具备以下条件: 安装了 JetBrains IDEA&…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...