Apache ECharts 6 升級指南

本指南適用於希望從 echarts 5.x(以下簡稱 v5)升級到 echarts 6.x(以下簡稱 v6)的使用者。你可以在 ECharts 6 新特性 中瞭解 v6 帶來的新功能。在大多數情況下,開發者無需為此次升級做任何額外操作,因為 echarts 一直以來都致力於保持 API 的穩定和向後相容。但是,v6 確實引入了一些需要特別注意的破壞性改動。此外,在某些場景下,v6 提供了更好的 API 來替代之前的 API,這些被替代的 API 已不再推薦使用(當然,我們已儘量為這些改動保持了相容性)。我們將在本文件中詳細說明這些變化。

如何升級

您可以從官方下載頁面下載最新的原始碼和構建產物。如果您使用 npm,請透過以下方式升級:

npm install echarts@6

不相容改動

預設主題

首先,預設主題發生了變化。v6 在配色方案和主題設計上做了很多最佳化,以獲得更好的視覺效果。如果您想保留舊版本的顏色,可以使用 echarts/theme/v5.js 主題檔案,並像下面這樣初始化圖表:

import 'echarts/theme/v5';
const chart = echarts.init(document.getElementById('container'), 'v5');

請注意,v6 的新樣式不僅改變了主題顏色,還最佳化和調整了一些元件的預設位置和大小(例如,圖例的預設位置現在在畫布的底部)。使用 echarts/theme/v5.js 可以恢復之前元件的預設位置和大小。

如果您不介意其他變化,只想將預設調色盤恢復到 v5 的版本,您可以建立一個只定義 v5 預設顏色的主題:

const colorPaletteV5 = [
    '#5470c6',
    '#91cc75',
    '#fac858',
    '#ee6666',
    '#73c0de',
    '#3ba272',
    '#fc8452',
    '#9a60b4',
    '#ea7ccc'
];
echarts.registerTheme('myTheme', { color: colorPaletteV5 });
const chart = echarts.init(document.getElementById('container'), 'myTheme');

此外,v5 中的 echarts/src/theme/light.ts 檔案已移至 echarts/theme/rainbow.js

標籤位置

在笛卡爾座標系(grid 元件)中,如果座標軸名稱(axisName)或標籤(axisLabel)之前超出了畫布或發生重疊,升級後坐標軸的位置可能會有輕微移動,因為防溢位和座標軸名稱/標籤防重疊功能現在預設是啟用的。在大多數情況下,這些變化幾乎不被察覺。但如果出現不合理的變動,您可以透過設定 grid.outerBoundsMode: 'none' 來停用防溢位,或透過設定 xAxis/yAxis.nameMoveOverlap: false 來停用防重疊。

富文字

在 v6 中,富文字標籤(label.rich / textStyle.rich)的以下樣式:fontStylefontWeightfontSizefontFamilytextShadowColortextShadowBlurtextShadowOffsetXtextShadowOffsetY 將繼承自普通標籤(label / textStyle)中的同名樣式。要恢復舊的行為,您可以在 ECharts 配置項的根級別或在 label/textStyle 選項中設定 richInheritPlainLabel: false

例如:

option = {
    richInheritPlainLabel: false, // Usually set here.
    xxx1: {
        // Or set here to only control this label.
        label: {
            richInheritPlainLabel: false,
            rich: {/* ... */},
        }
    },
    xxx2: {
        textStyle: {
            richInheritPlainLabel: false,
            rich: {/* ... */},
        }
    }
}

貢獻者 在 GitHub 上編輯此頁

Ovilia