Apache ECharts 6 新特性

十二年前,ECharts 在 GitHub 上首次发布,播下了开源之旅的种子。

从一个简单的图表工具到支持数百万开发者的可视化利器;从单一的前端图表库到涵盖移动端、大屏和服务端渲染的全面技术体系——在这 12 年里,我们见证了 ECharts 的持续技术突破,并欣喜地看到全球开发者利用 ECharts 创作了无数令人惊叹的数据故事。

现在,Apache ECharts 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 帮助用户更灵活、更方便地创建更多图表,真正实现“图表创作的无限可能”!

特性详情

1. 全新默认主题

在 ECharts 6.0 的开发过程中,我们分析了真实的用户场景,发现超过 70% 的开发者使用默认主题。这让我们意识到:一个优秀的默认主题不仅应该美观,还应该满足各种业务场景的通用需求。

新的主题系统使用设计变量 (design tokens) 重构了颜色、间距和其他设计元素,使不同的图表类型和组件更加和谐一致

虽然 6.0 主题与 5.x 相比有重大变化,但我们为希望使用新功能但保留旧样式的开发者提供了 v5.js 主题文件,以便快速迁移。

2. 动态主题切换

在之前的版本中,更改图表主题需要销毁图表实例并重新初始化,这可能会因为重复动画而对用户体验产生负面影响。在新版本中,我们实现了动态主题切换(参见文档),显著提升了用户体验。

3. 暗黑模式支持

随着动态主题注册和切换的实现,一个典型的场景是监听系统的暗黑模式并动态调整图表的主题

这对于支持暗黑模式的业务场景至关重要,确保应用界面与系统主题匹配,极大地增强了用户体验。

以下是如何监听系统暗黑模式并更改图表主题的方法

const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
function updateDarkMode() {
    const isDarkMode = darkModeMediaQuery.matches;
    for (const chart of charts) {
        chart.setTheme(isDarkMode ? 'dark' : 'default');
    }
}
darkModeMediaQuery.addEventListener('change', () => {
    updateDarkMode();
});

4. 新增和弦图

和弦图直观地展示了复杂关系网络中的流动和权重,非常适合金融交易和社交网络等场景。ECharts 创新地支持了边使用源节点和目标节点的渐变色,创造独特的视觉效果。参见 series-chord

5. 新增蜂群图

传统的散点图在类目轴上可能会变得过度拥挤。蜂群图使用非数值轴偏移来分布点位而不会重叠,同时保持数值轴的准确性。将 jitter 设置为非零值并将 jitterOverlap 设置为 false 即可启用蜂群图。

6. 新增散点抖动

散点抖动在非数据维度上增加随机偏移,解决数据点过于密集的问题

如果不使用抖动,当数据密集时很难看清分布

启用抖动后,最密集的范围(6-8)变得清晰。与蜂群图相比,散点抖动具有更好的性能。

jitter 设置为非零值并将 jitterOverlap 设置为 true 即可启用散点抖动。

7. 新增截断轴

截断轴是一种用于展示具有巨大数量级差异的数据的可视化技术。在 ECharts 6.0 中,我们创新地实现了截断轴的撕纸效果,使含义更加直观,并支持点击展开以还原真实的数据比例。

8. 增强的股票交易图表

ECharts 6.0 针对金融交易场景进行了深度优化,增强了相对于坐标系的标签定位,帮助开发者快速构建专业级的交易分析工具。

下面是一个使用 ECharts 的综合股票交易图表,结合了分时图、MACD、成交量、盘口和深度图

这些示例可以帮助开发者快速满足金融交易需求。例如,通过 relativeTo 可以在图表的四个角落显示数值。

9. 新增矩阵坐标系

上面的例子也使用了 ECharts 6.0 中新的矩阵坐标系,它非常强大。它可以用于协方差矩阵图

元素周期表

作为一种布局方式,它还允许开发者组合各种图表类型和组件,创建灵活而复杂的视觉呈现

10. 增强的自定义系列

以前,使用 ECharts 自定义系列意味着开发者必须从头开始编写复杂的 renderItem 逻辑,代码复用仅限于复制粘贴。现在,ECharts 6.0 带来了标准化、可复用的解决方案

  • 自定义系列注册:与主题注册类似,自定义系列可以动态注册,并像内置系列一样轻松使用。参见 series-custom.renderItem
  • 官方自定义系列项目:官方项目位于 https://github.com/apache/echarts-custom-series,提供了多个自定义系列,正式发布后可通过 npm 获取
  • 发布你自己的自定义系列:向上述项目提交 Pull Request 或发布到你自己的仓库以实现代码复用

11. 新增自定义图表

此版本在自定义系列项目中提供了 6 个实用的自定义图表。使用方法和文档请参见 echarts-custom-series。包括小提琴图

等高线图:

睡眠阶段图:

分段圆环图:

条形范围图:

折线范围图:

释放您的创意,加入我们,创作更多自定义图表!

12. 坐标轴标签优化

在之前的版本中,直角坐标系中的轴标签和名称在数据较长时很容易溢出或重叠。用户并不总能随着数据的变化预见空间需求。在这个版本中,我们优化了默认策略,以防止溢出和重叠。

升级指南

查看完整的 更新日志升级指南

贡献者 在 GitHub 上编辑此页

plainheart plainheartOvilia Ovilia