public class Timeline extends Object implements Serializable
timeline 组件,提供了在多个 ECharts option 间进行切换、播放等操作的功能。
示例效果如下:
timeline 和其他场景有些不同,它需要操作『多个option』。我们把传入 setOption 第一个参数的东西,称为 ECOption,然后称传统的 ECharts 单个 option 为 ECUnitOption。
timeline 和 media query 没有被设置时,一个 ECUnitOption 就是一个 ECOption。timeline 或 media query 被使用设置时,一个 ECOption 由几个 ECUnitOption 组成。ECOption 的各个根属性,形成一个 ECUnitOption,叫做 baseOption,它代表了各种默认设置。options 数组每项,形成一个 ECUnitOption,我们为了方便也叫做 switchableOption,它代表了每个时间粒度对应的 option。baseOption 和一个 switchableOption 会用来计算最终的 finalOption,图表就是根据这个最终结果绘制的。例如:
// 如下,baseOption 是一个 『原子option』,options 数组
// 中的每一项也是一个 『原子option』。
// 每个『原子option』中就是本文档中描述的各种配置项。
myChart.setOption({
// `baseOption` 的属性.
timeline: {
...,
// `timeline.data` 中的每一项,对应于 `options`
// 数组中的每个 `option`
data: ['2002-01-01', '2003-01-01', '2004-01-01']
},
grid: { ... },
xAxis: [ ... ],
yAxis: [ ... ],
series: [{
// 系列一的一些其他配置
type: 'bar',
...
}, {
// 系列二的一些其他配置
type: 'line',
...
}, {
// 系列三的一些其他配置
type: 'pie',
...
}],
// `switchableOption`s:
options: [{
// 这是'2002-01-01' 对应的 option
title: {
text: '2002年统计值'
},
series: [
{ data: [] }, // 系列一的数据
{ data: [] }, // 系列二的数据
{ data: [] } // 系列三的数据
]
}, {
// 这是'2003-01-01' 对应的 option
title: {
text: '2003年统计值'
},
series: [
{ data: [] },
{ data: [] },
{ data: [] }
]
}, {
// 这是'2004-01-01' 对应的 option
title: {
text: '2004年统计值'
},
series: [
{ data: [] },
{ data: [] },
{ data: [] }
]
}]
});
finalOption 是怎么计算出来的?
初始化的时候,对应于当前时间的那个 switchableOption 会被合并(merge)到 baseOption,形成 finalOption。而每当时间变化时,对应于新时间的 switchableOption 会被合并(merge)到finalOption。
有两种合并(merge)策略:
NORMAL_MERGE。REPLACE_MERGE。如果要知道 REPLACE_MERGE 更多信息,可以参见 setOption 中 REPLACE_MERGE 一节。
。
兼容 ECharts4
如下这种设置方式,也支持:
option = {
baseOption: {
timeline: {},
series: [],
// ... other properties of baseOption.
},
options: []
};
{_more_}Copyright © 2021. All rights reserved.