当前位置: 首页 > news >正文

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 介绍功能概览多种图表类型- **基础类型**&#xff1a;折线图、柱状图、饼图、散点图。- **高级类型**&#xff1a;雷达图、热力图、桑基图、K线图。- **地理可视化**&#xff1a;支持地图&#xff08;如中国、世界&#xff09;和地理坐标系。- **3D支持…...

最新版本TOMCAT+IntelliJ IDEA+MAVEN项目创建(JAVAWEB)

前期所需&#xff1a; 1.apache-tomcat-10.1.18-windows-x64&#xff08;tomcat 10.1.8版本或者差不多新的版本都可以&#xff09; 2.IntelliJ idea 24年版本 或更高版本 3.已经配置好MAVEN了&#xff08;一定先配置MAVEN再搞TOMCAT会事半功倍很多&#xff09; 如果有没配置…...

Linux - 进程通信

一、管道 管道是一种进程间通信&#xff08;IPC&#xff09;机制&#xff0c;用于在进程之间传递数据。它的本质是操作系统内核维护的一个内存缓冲区&#xff0c;配合文件描述符进行数据的读写。尽管管道的核心是内存缓冲区&#xff0c;但操作系统通过对管道的实现&#xff0c…...

使用 Arduino 的 WiFi 控制机器人

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

网络安全等级保护2.0 vs GDPR vs NIST 2.0:全方位对比解析

在网络安全日益重要的今天&#xff0c;各国纷纷出台相关政策法规&#xff0c;以加强信息安全保护。本文将对比我国网络安全等级保护2.0、欧盟的GDPR以及美国的NIST 2.0&#xff0c;分析它们各自的特点及差异。 网络安全等级保护2.0 网络安全等级保护2.0是我国信息安全领域的一…...

verb words

纠正correct remedy 修正modify 协商 confer 磋商/谈判 negotiate 通知notice notify *宣布announce 声明declare 宣告 declare *颁布 promulgate /introduce 协调coordinate 评估evaluate assess 撤离evacuate *规定stipulate 参与participate&#xff0c; 涉及refer…...

unity console日志双击响应事件扩展

1 对于项目中一些比较长的日志&#xff0c;比如前后端交互协议具体数据等&#xff0c;这些日志内容可能会比较长&#xff0c;在unity控制面板上查看不是十分方便&#xff0c;我们可以对双击事件进行扩展&#xff0c;将日志保存到一个文本中&#xff0c;然后用系统默认的文本查看…...

维度建模维度表技术基础解析(以电商场景为例)

维度建模维度表技术基础解析(以电商场景为例) 维度表是维度建模的核心组成部分,其设计直接影响数据仓库的查询效率、分析灵活性和业务价值。本文将从维度表的定义、结构、设计方法及典型技术要点展开,结合电商场景案例,深入解析其技术基础。 1. 维度表的定义与作用 定义…...

Leetcode 264-丑数/LCR 168/剑指 Offer 49

题目描述 我们把只包含质因子 2、3 和 5 的数称作丑数&#xff08;Ugly Number&#xff09;。求按从小到大的顺序的第 n 个丑数。 示例: 说明: 1 是丑数。 n 不超过1690。 题解 动态规划法 根据题意&#xff0c;每个丑数都可以由其他较小的丑数通过乘以 2 或 3 或 5 得到…...

阿里云MaxCompute面试题汇总及参考答案

目录 简述 MaxCompute 的核心功能及适用场景,与传统数据仓库的区别 解释 MaxCompute 分层架构设计原则,与传统数仓分层有何异同 MaxCompute 的存储架构如何实现高可用与扩展性 解析伏羲(Fuxi)分布式调度系统工作原理 盘古(Pangu)分布式存储系统数据分片策略 计算与存…...

笔记:Directory.Build.targets和Directory.Build.props的区别

一、目的&#xff1a;分享Directory.Build.targets和Directory.Build.props的区别 Directory.Build.targets 和 Directory.Build.props 是 MSBuild 的两个功能&#xff0c;用于在特定目录及其子目录中的所有项目中应用共享的构建设置。它们的主要区别在于应用的时机和用途。 二…...

istio入门到精通-2

上部分讲到了hosts[*] 匹配所有的微服务&#xff0c;这部分细化一下 在 Istio 的 VirtualService 配置中&#xff0c;hosts 字段用于指定该虚拟服务适用的 目标主机或域名。如果使用具体的域名&#xff08;如 example.com&#xff09;&#xff0c;则只有请求的主机 域名与 exa…...

第5章:vuex

第5章&#xff1a;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是一个文本格式的配置文件&#xff0c;其内包含了一条条的指令(Instruction)&#xff0c;每一条指令构建一层&#xff0c;因此每一条指令的内容&#xff0c;就是描述该层应当如何构建。有了Dockerfile&#xff0c;当我们需要定制自己额外的需求时&#xff0c;只需在D…...

Java多线程与高并发专题——为什么 Map 桶中超过 8 个才转为红黑树?

引入 JDK 1.8 的 HashMap 和 ConcurrentHashMap 都有这样一个特点&#xff1a;最开始的 Map 是空的&#xff0c;因为里面没有任何元素&#xff0c;往里放元素时会计算 hash 值&#xff0c;计算之后&#xff0c;第 1 个 value 会首先占用一个桶&#xff08;也称为槽点&#xff…...

LeetCode hot 100—二叉树的中序遍历

题目 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2]示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[]示例 3&#xff1a; 输入&#xff1a;root […...

代码随想录算法训练营第35天 | 01背包问题二维、01背包问题一维、416. 分割等和子集

一、01背包问题二维 二维数组&#xff0c;一维为物品&#xff0c;二维为背包重量 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中的报错场景

中国联通软件研究院&#xff08;简称联通软研院&#xff09;在全面评估与广泛调研后&#xff0c;在 2021年底决定采用OceanBase 作为基础&#xff0c;自研分布式数据库产品CUDB&#xff08;即China Unicom Database&#xff0c;中国联通数据库&#xff09;。目前&#xff0c;该…...

IDEA 接入 Deepseek

在本篇文章中&#xff0c;我们将详细介绍如何在 JetBrains IDEA 中使用 Continue 插件接入 DeepSeek&#xff0c;让你的 AI 编程助手更智能&#xff0c;提高开发效率。 一、前置准备 在开始之前&#xff0c;请确保你已经具备以下条件&#xff1a; 安装了 JetBrains IDEA&…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...