包含 12 项重大升级的新版本 Apache ECharts 6.0 beta 震撼发布!
12 年前的今天,ECharts 在 GitHub 首次发布,一颗开源的种子从此萌发。
从最初的图表工具,到如今成长为支撑百万级开发者的可视化巨擘;从单一的前端图表库,演进为支持移动端、大屏、服务端渲染等全场景的技术体系。这 12 年间,我们见证了 ECharts 在技术方面的持续突破,更欣喜地看到全球开发者用 ECharts 创造出无数惊艳的数据故事。
今天,作为 ECharts 12 岁生日的献礼,我们呈上诚意满满的 12 项升级,只为百尺竿头,更进一步。
6.0 功能概览
12 年的沉淀,只为更极致的可视化表达。Apache ECharts 的核心力量,始终源于对开发者真实挑战的深刻理解。当我们为 6.0 定义方向时,问题很清晰:如何让复杂数据的呈现既足够强大,又足够优雅?
这驱使我们围绕三个核心维度进行深度进化:
-
更专业的可视化呈现:从精心打磨的默认主题,到响应系统深色的智能切换,确保图表具备专业质感,无缝融入现代应用体验。
-
拓展数据表达的边界:新增更多图表类型与功能,构建完整复杂场景应对体系,实现深度数据的直觉化表达。
-
释放组合编排的自由:从革命性的矩阵坐标系,到可复用的自定义系列生态,再到坐标轴标签优化——赋予开发者更自由编排的能力,将创意映射为无拘束的可视化作品。
我们在这三个核心维度上做了 12 项升级。这些升级并非简单的功能叠加,而是为构建下一代数据驱动应用,铺设的坚实能力基座。它们共同指向一个目标:让 ECharts 强大、可靠、稳定地服务于后台,把舞台和聚光灯留给你的创造性表达。
下文将针对这十二项升级分别展开介绍:
- 更专业的可视化呈现
-
1. 全新默认主题:采用更符合现代审美的设计语言,以专业设计赋能数据表达
-
2. 动态主题切换:支持运行时无缝切换主题,适配多主题场景
-
3. 深色模式响应:自动适配系统深色/浅色模式,提升用户体验
-
- 拓展数据表达的边界
-
4. 新增和弦图:拓展复杂关系与分布数据的呈现方式
-
5. 新增蜂群图:通过动态分布算法,将重叠数据点智能展开为蜂窝状排列
-
6. 新增抖动散点图:通过增加散点图分布范围,增强高密度数据的可读性
-
7. 新增断轴:表达数据断层,轻松呈现量级悬殊的数据对比
-
8. 升级股市交易类图表:增强标签能力,更多开箱即用的交易类图表
-
- 释放组合编排的自由
-
9. 新增矩阵坐标系:各种图表类型和组件像表格一样自由组合,灵活布局
-
10. 升级自定义系列:支持 npm 发布与动态注册使用,实现自定义系列代码复用
-
11. 新增多款自定义图表:小提琴图、轮廓图、阶段图、范围柱状图、范围折线图
-
12. 坐标轴标签优化:新版智能优化坐标标签布局,默认防溢出防重叠
-
我们希望通过 Apache ECharts 6.0 的全新升级,帮助用户更灵活方便地创建更多图表,实现真正的“前图无量”!
6.0 功能介绍
1. 全新默认主题
在 ECharts 6.0 的开发过程中,我们深入分析了用户的真实使用场景,发现超过七成的开发者直接采用默认主题。这让我们意识到:一个优秀的默认主题不仅要具备美学价值,更要符合各个业务场景的通用需求。
新版主题系统内部使用了设计令牌(design token)对颜色、距离等设计元素进行重构,使得不同图表类型和组件之间更和谐一致。
虽然 6.0 的主题在 5.x 版本上有非常大的调整,但是我们提供了一个 v5.js
主题文件,对于希望使用新版本功能但保留原有样式的开发者,可以实现快速迁移。
2. 动态主题切换
在之前的版本中,如果想要改变一个图表的主题,就必须注销图表实例后重新初始化,二次的初始动画可能对用户体验带来负面影响。在新版本中,我们实现了主题的动态切换能力,显著地提升用户体验。
3. 深色模式响应
在实现主题的动态注册和切换之后,一个典型场景是监听系统是否使用深色模式,并动态调整图表的深色与浅色主题。
这对于支持深色模式的业务场景至关重要,可以确保应用界面与系统主题风格一致,显著提升用户体验的流畅性和专业性。
4. 新增和弦图
和弦图直观展现复杂关系网络中的流量与权重,特别适合金融交易、社交网络等场景的多维度关系分析。ECharts 创新性地支持使用出节点和入节点的渐变色作为边的颜色,呈现独特的视觉美感。
5. 新增蜂群图
传统的散点图在类目轴下如果数据过于密集,蜂群图(Beeswarm)通过将数据在非数值维度上的偏移,在保持数值轴准确性的前提下,实现散点图的无重叠分布。
6. 新增抖动散点图
抖动散点图(Scatter Jittering)采用随机扰动策略,在非数据维度上添加固定范围的随机偏移,解决数据过于密集的问题。
从下图我们可以看到,在未使用抖动的情况下,如果数据过于密集,很难看清数据的分布情况。
而在开启了数据抖动之后,可以更清楚地看到数据分布最密集的范围是 6-8 之间。并且,相比蜂群图,抖动散点图具有更高的处理性能。
7. 新增断轴
断轴(Broken Axis)是一种通过坐标轴断层展现悬殊量级数据的可视化手段。在 ECharts 6.0 中,我们创新性地实现了模拟撕纸效果的断轴,使得断轴的含义能被更直观地传递,并且支持点击展开的效果,还原到真实数据比例。
8. 升级股市交易类图表
ECharts 6.0 针对金融交易场景深度优化,增强了标签针对坐标系的相对定位能力,助力开发者快速构建专业级行情分析工具。
下图展示了一个使用 ECharts 实现的股市交易图的综合应用场景,结合了分时图、MACD、成交量、买卖盘口、深度图:
这些实例可以帮助开发者快速实现金融交易场景的需求。
9. 新增矩阵坐标系
上述例子也用到了 ECharts 6.0 新增的矩阵坐标系,它的功能十分强大。不仅可以用来做协方差矩阵图:
元素周期表:
作为一种布局,它还允许开发者将各种图表类型和组件结合,创造出灵活复杂的可视化作品:
10. 升级自定义系列
过去,使用 ECharts 自定义系列意味着开发者必须从零手写 renderItem
复杂逻辑,即使是复用,也只是复制粘贴代码。现在,ECharts 6.0 带来标准化可复用方案:
-
自定义系列的注册机制:和主题注册类似,自定义系列也可以动态注册和使用,使用方式和内置图表系列一样简单方便
-
官方自定义系列项目:官方在 https://github.com/apache/echarts-custom-series 发布了多个自定义系列,在正式版本发布后,开发者可以通过 npm 等方便地获取
-
发布自己的自定义系列:可以向上述项目提 Pull Request 或发布到自己的仓库,实现自定义系列的复用
11. 新增多款自定义图表
本次发布,自定义系列项目提供了 6 款实用的图表。包括小提琴图:
轮廓图:
睡眠阶段图:
分段环形图:
范围柱状图:
范围折线图:
发挥你的创意,快来和我们一起创造更多自定义图表吧!
12. 坐标轴标签优化
在之前的版本中,直角坐标系的 axisLabel
和 axisName
在数据比较长时容易超出屏幕,以及重叠。数据变化时使用者并不总能准确预估空间来完全避免它们。在这个版本中我们优化了防止超出屏幕以及防止重叠的策略,并成为默认。
升级指南
ECharts 6.0 目前已发布 beta 版本,可以通过 npm install echarts@6.0.0-beta.1
抢先体验并反馈问题。正式发布后,原有项目可以通过 npm install echarts@6
升级。届时,官网将同步更新升级指南、文档及教程。
前往 GitHub Release 查看更多信息。
前图无量 · 与君同行
ECharts MCP 开源在即
在 AI 重塑数据洞察的今天,我们即将开源一个 ECharts Model Context Protocol (MCP) 项目,用大模型能力重新定义数据表达的终极形态,完成数据可视化的最后一公里,助你轻松实现前图无量。
我们将在未来几个月逐步揭晓更多技术细节,以及如何利用 MCP 构建企业级智能图表服务的完整指南。请持续关注我们,获取最新技术解析和最佳实践案例。
更多详细教程
接下来的几个月,我们会持续输出更多教程,详细地介绍 ECharts 6.0 的各大新功能,敬请关注!
十二年前的星星之火,借开源的力量,已成今日之炬。ECharts 6.0 的每一行代码、每一个新功能,都凝聚着社区开发者的智慧与付出。
最后,让我们再次感谢所有为这个版本贡献过的开发者们!
百度招聘 ECharts 实习生
百度招聘 ECharts 实习生 1-2 名,负责 ECharts 新功能开发、bug 修复,表现优异者有转正机会,优先考虑未来一年内毕业的在校大学生。社招无固定名额,特别优秀者(以下岗位要求高度符合)欢迎投递简历交流。
岗位要求:
-
对数据可视化和开源项目有热情、有想法、有能力
-
计算机或可视化等相关专业
-
熟练掌握 TypeScript
-
熟练掌握原生 Canvas、SVG 编程
-
为
apache/echarts
项目提过至少 2 个 Pull Request(也欢迎现在开始尝试提,不要求已合入),投递简历时必须附上至少 2 个 PR 链接。这是我们主要评估你的技术能力的方式,请投递能体现你技术水平的 PR -
加分项:熟悉计算机图形学、熟悉 WebGL 编程
岗位信息:
-
工作地点:上海或北京
-
岗位有效期至 2025.9.30
-
简历投递至:zhangwenli01 at baidu.com
贡献者惊喜福利
2025.7.1 - 2025.9.30 期间,为 apache/echarts
项目提过至少 2 个 Pull Request(不要求已合入)的前 20 名开发者,可邮件至 zhangwenli01 at baidu.com 申请领取以下奖励:
-
ECharts 周边:T 恤、钥匙圈、别针式徽章、贴纸若干枚
-
文心快码(基于文心大模型、结合百度编程大数据的 AI 工具)企业级会员一年以上免费使用权益。
完整版本更新记录
-
[Feature] [matrix&calendar] 新增矩阵坐标系 并且所有的系列和组件 (包括其他坐标系组件,例如
grid
(直角坐标系)geo
polar
等) 支持声明式地布局在矩阵坐标系或日历坐标系的格中 #19807(Ovilia) #21005 (100pah) -
[Feature] [cartesian] 引入新的布局方式避免直角坐标系 (
grid
组件) 的坐标轴标签 (axisLabel
) 和坐标轴名称 (axisName
) 超出可视范围,以及避免他们重叠 并且设为默认 #21059 (100pah), #19534 (robin-gerling), #16825 (konrad-amtenbrink). -
[Feature] [roam] 缩放平移的基础设施升级 - 支持用户指定 (
roamTigger
) 可触发缩放平移的区域;支持clip
(于geo
和series.map
);支持鼠标指针样式变化以提示缩放平移区域;支持preserveAspect
(于geo
,series.map
,series.graph
,series.tree
,series.sankey
);修复center
的百分比基准 (于geo
,series.map
,series.graph
,series.tree
);优化缩放平移区域重叠时的表现#19807#issuecomment-2974437299(100pah). -
[Feature] [thumbnail] 为关系图系列支持缩略图 #19807#issuecomment-3013454598 (100pah) #17471 (Lruler)
-
[Feature] [marker] 标记点/标记线/标记区域 (
markPoint
/markLine
/markArea
) 支持z2
选项 #20782 (sz-p) -
[Feature] [custom] 在自定义系列的
renderItem
中支持compoundPath
#20402 #21040 (Ovilia) -
[Feature] [marker] 标记支持
relativeTo
相对坐标系的位置 #20166 #21042(Ovilia) -
[Feature] [axis] 支持角度轴 (
angleAxis
) 标签的提示框 (tooltip
)#20986 (plainheart) -
[Feature] [tooltip] 支持
displayTransition
选项以控制是否启用提示框显示过渡动画 #20966 (jqqin) -
[Feature] [custom] 自定义系列 (
custom series
) 支持tooltipDisabled
#20447 (Ovilia) -
[Fix] [label] 修复富文本样式不继承普通标签样式的问题 #20977 (plainheart) #21016 (100pah)
-
[Fix] [dataZoom] 修复时间轴上数据形状分布的问题 #16978 (andrearoota) #21043 #21039 (Ovilia)
-
[Fix] [visualMap] 修复部分文本样式在视觉映射 (
visualMap
) 上不起作用的问题#20961 (plainheart) -
[Fix] [dataZoom] 在
brushEnd
时限制范围 #20814 (mortalYoung) -
[Fix] [heatmap] 修复日历热力图范围外的标签被意外显示的问题 #20699(plainheart)
-
[Fix] [pie] 修复当单个标签位置不在外部时,
labelLine
可能未被移除并导致错误的问题 #20906 (plainheart) -
[Fix] [sankey] 修复当
emphasis.focus
为'trajectory'
时,处理大数据导致浏览器崩溃的问题 #20959 (plainheart) -
[Fix] [custom] 修复应用离开过渡时可能出现的空指针异常 (NPE) #20920(plainheart)
-
[Fix] [dataZoom] 将
moveHandler
的光标改为默认 (default
) #20304(ribeirompl) -
[Fix] [tooltip] 修复提示框关闭后用于样式坐标变换的标记点未被移除的问题#20987 (plainheart)
-
[Fix] [bar] 从
BarSeriesOption
接口中移除未使用的startValue
选项#20901 (plainheart) -
[Fix] [svg] 移除
getSvgDataURL
中的 SVG 支持检查 #20760 (plainheart) - [Break] 相对于 v5.6.0 的 Breaking changes:
-
默认主题已发生变化,包括视觉样式以及组件 (component) 和系列 (series) 的默认位置设置 例如,默认图例 (legend) 的位置现在改为在画布底部 新的默认设置更加合理,但如果影响了现有用法,可以使用
echarts/theme/v5.js
恢复旧的视觉样式和位置设置 参见 #20865 -
v5 版本中的
echarts/src/theme/light.ts
已迁移至echarts/theme/rainbow.js
-
在直角坐标系中 (
grid
组件),如果之前坐标轴名称 (axisName
) 或标签 (axisLabel
) 溢出画布或发生重叠,现在坐标轴的位置可能会相对之前而言略微偏移,因为默认启用了防止溢出和防止 坐标轴名称与标签重叠的机制 在大多数情况下,这些变化肉眼难以察觉 但如果出现不合理的变化,可以通过设置grid.outerBoundsMode: 'none'
选项关闭防溢出机制,或设置xAxis/yAxis.axisLabel.nameMoveOverlap: false
选项关闭防重叠机制 参见 #21059 -
在
geo
、series.map
、series.graph
和series.tree
中,center
选项中百分比 (如'33%'
) 的基准发生了变化 之前的百分比基准是错误的 如需恢复旧行为,可在 ECharts option 的根级别设置legacyViewCoordSysCenterBase: true
参见 #19807#issuecomment-2974437299 -
现在标签 (label) 的 rich 样式 (
fontStyle
、fontWeight
、fontSize
、fontFamily
、textShadowColor
、textShadowBlur
、textShadowOffsetX
、textShadowOffsetY
) 会继承普通标签样式 如需恢复旧行为,可以在 ECharts 配置的根级别或标签样式选项同级处设置richInheritPlainLabel: false
参见 #20977
-