当前位置: 首页 > 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&…...

如何安全高效地烧录系统镜像?Balena Etcher带来无忧体验

如何安全高效地烧录系统镜像&#xff1f;Balena Etcher带来无忧体验 【免费下载链接】etcher Flash OS images to SD cards & USB drives, safely and easily. 项目地址: https://gitcode.com/GitHub_Trending/et/etcher 你是否曾因误操作将系统镜像写入电脑硬盘而丢…...

状态量: 轮速、滑移率、附着系数

基于分布式驱动电动汽车的路面附着系数估计&#xff0c;分别采用无迹卡尔曼滤波&#xff08;UKF&#xff09;和容积卡尔曼滤波&#xff08;CKF&#xff09;对电动汽车四个车轮的路面附着系数进行估计。可高速&#xff0c;低速&#xff0c;高附着系数&#xff0c;低附着系数&…...

BEYOND REALITY Z-Image实测:同一张脸,两种质感,细节对比一目了然

BEYOND REALITY Z-Image实测&#xff1a;同一张脸&#xff0c;两种质感&#xff0c;细节对比一目了然 今天我要带大家做一个有趣的实验。想象一下&#xff0c;你面前站着同一个人&#xff0c;但左边是手机快照&#xff0c;右边是专业单反拍摄的照片——这就是BEYOND REALITY Z…...

原神帧率解锁技术突破:从性能瓶颈到效能释放的全流程优化指南

原神帧率解锁技术突破&#xff1a;从性能瓶颈到效能释放的全流程优化指南 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 诊断性能瓶颈&#xff1a;揭开帧率限制的技术根源 识别帧率锁定…...

远程收款好用服务商

在数字化支付日益普及的今天&#xff0c;远程收款成为许多商家和创业者的重要需求。然而&#xff0c;由于各种风控限制&#xff0c;微信支付、支付宝等主流支付平台在异地收款时常常出现异常提示或风险拦截&#xff0c;给用户带来了不少困扰。本文将对比分析几家提供远程收款服…...

用Lumerical MODE的EME Solver设计硅基波导耦合器:一个完整案例解析

硅基光子集成中的EME Solver实战&#xff1a;定向耦合器设计与性能优化全解析 光子集成电路(PIC)设计领域&#xff0c;模式展开法(EME)因其在长距离波导结构仿真中的独特优势&#xff0c;正成为工程师验证器件性能的首选工具。尤其在硅基定向耦合器这类关键无源器件的设计中&am…...

破局MIDI控制困境:SendMIDI让命令行成为音乐创作的神经中枢

破局MIDI控制困境&#xff1a;SendMIDI让命令行成为音乐创作的神经中枢 【免费下载链接】SendMIDI Multi-platform command-line tool to send out MIDI messages 项目地址: https://gitcode.com/gh_mirrors/se/SendMIDI 在数字音乐制作的世界里&#xff0c;MIDI&#x…...

如何快速掌握PDF对比工具:5个实用场景完全指南

如何快速掌握PDF对比工具&#xff1a;5个实用场景完全指南 【免费下载链接】diff-pdf A simple tool for visually comparing two PDF files 项目地址: https://gitcode.com/gh_mirrors/di/diff-pdf PDF对比工具diff-pdf是一款开源的视觉化PDF文件对比神器&#xff0c;它…...

【自然语言处理】BERTopic:解决文本主题分析的5个创新方案

#【自然语言处理】BERTopic&#xff1a;解决文本主题分析的5个创新方案 【免费下载链接】BERTopic Leveraging BERT and c-TF-IDF to create easily interpretable topics. 项目地址: https://gitcode.com/gh_mirrors/be/BERTopic 在信息爆炸的时代&#xff0c;如何从海…...

TouchGal:打造纯净Galgame社区的5个简单步骤

TouchGal&#xff1a;打造纯净Galgame社区的5个简单步骤 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next TouchGal是一个专为视觉小说…...