ECharts 入门教程 使用ECharts柱状图标线

2024-02-25 开发教程 ECharts 入门教程 匿名 5

ECharts 使用 markLine 来设置柱状图标线,本文是对柱状图标线属性的介绍。

series[i]-bar.markLine.silent | boolean

[ default: false ]

设置柱状图标线是否不响应和触发鼠标事件,默认为 false,即响应和触发鼠标事件。

series[i]-bar.markLine.symbol | string, Array

柱状图标线两端的标记类型,可以是一个数组分别指定两端,也可以是单个统一指定,具体格式见 data.symbol。

series[i]-bar.markLine.symbolSize | number, Array

标线两端的标记大小,可以是一个数组分别指定两端,也可以是单个统一指定。

注意: 这里无法像一般的 symbolSize 那样通过数组分别指定高宽。

series[i]-bar.markLine.precision | number

[ default: 2 ]

标线数值的精度,在显示平均值线的时候有用。

series[i]-bar.markLine.label | Object

标线的文本。

series[i]-bar.markLine.lineStyle | Object

标线的样式

series[i]-bar.markLine.data

标线的数据数组。每个数组项可以是一个两个值的数组,分别表示线的起点和终点,每一项是一个对象,有下面几种方式指定起点或终点的位置。

  1. 通过 x, y 属性指定相对容器的屏幕坐标,单位像素,支持百分比。
  2. 用 coord 属性指定数据在相应坐标系上的坐标位置,单个维度支持设置 'min', 'max', 'average'。
  3. 直接用 type 属性标注系列中的最大值,最小值。这时候可以使用 valueIndex 或者 valueDim 指定是在哪个维度上的最大值、最小值、平均值。
  4. 如果是笛卡尔坐标系的话,也可以通过只指定 xAxis 或者 yAxis 来实现 X 轴或者 Y 轴为某值的标线,见示例 scatter-weight

当多个属性同时存在时,优先级按上述的顺序。

也可以是直接通过 type 设置该标线的类型,是最大值的线还是平均线。同样的,这时候可以通过使用 valueIndex 指定维度。

data: [
{
name: '平均线',
// 支持 'average', 'min', 'max'
type: 'average'
},
{
name: 'Y 轴值为 100 的水平线',
yAxis: 100
},
[
{
// 起点和终点的项会共用一个 name
name: '最小值到最大值',
type: 'min'
},
{
type: 'max'
}
],
[
{
name: '两个坐标之间的标线',
coord: [10, 20]
},
{
coord: [20, 30]
}
], [{
// 固定起点的 x 像素位置,用于模拟一条指向最大值的水平线
yAxis: 'max',
x: '90%'
}, {
type: 'max'
}],
[
{
name: '两个屏幕坐标之间的标线',
x: 100,
y: 100
},
{
x: 500,
y: 200
}
]
]

series[i]-bar.markLine.animation | boolean

[ default: true ]

是否开启动画。

series[i]-bar.markLine.animationThreshold | number

[ default: 2000 ]

是否开启动画的阈值,当单个系列显示的图形数量大于这个阈值时会关闭动画。

series[i]-bar.markLine.animationDuration | number

[ default: 1000 ]

初始动画的时长,支持回调函数,可以通过每个数据返回不同的 delay 时间实现更戏剧的初始动画效果:

animationDuration: function (idx) {
// 越往后的数据延迟越大
return idx * 100;
}

series[i]-bar.markLine.animationEasing | string

[ default: cubicOut ]

初始动画的缓动效果。不同的缓动效果可以参考 缓动示例

series[i]-bar.markLine.animationDelay | number, Function

[ default: 0 ]

初始动画的延迟,支持回调函数,可以通过每个数据返回不同的 delay 时间实现更戏剧的初始动画效果。

如下示例:

animationDelay: function (idx) {
// 越往后的数据延迟越大
return idx * 100;
}

也可以看该示例

series[i]-bar.markLine.animationDurationUpdate | number, Function

[ default: 300 ]

数据更新动画的时长。

支持回调函数,可以通过每个数据返回不同的 delay 时间实现更戏剧的更新动画效果:

animationDurationUpdate: function (idx) {
// 越往后的数据延迟越大
return idx * 100;
}

series[i]-bar.markLine.animationEasingUpdate | string

[ default: cubicOut ]

数据更新动画的缓动效果。

series[i]-bar.markLine.animationDelayUpdate | number, Function

[ default: 0 ]

数据更新动画的延迟,支持回调函数,可以通过每个数据返回不同的 delay 时间实现更戏剧的更新动画效果。

如下示例:

animationDelayUpdate: function (idx) {
// 越往后的数据延迟越大
return idx * 100;
}

也可以看该示例