使用ECharts dataset格式时如何为每个数据点设置symbol?
在ECharts的dataset模式中为单个数据点设置symbol
ECharts原本支持在series.data中为每个数据点单独定义symbol,但官方现在推荐使用dataset模式。要在dataset模式下实现相同效果,只需两步:
- 在
dataset.source中新增一列(或字段),专门存储每个数据点的symbol类型 - 在series的
symbol属性中使用回调函数,从dataset的对应字段中读取symbol值
数组形式的dataset示例
option = { dataset: { source: [ ['time', 'value', 'symbol'], // 表头定义,新增symbol列 ['2023-01-01T15:00:00Z', 10, 'circle'], ['2023-01-01T16:00:00Z', 20, 'rect'], ['2023-01-01T17:00:00Z', 15, 'triangle'] ] }, xAxis: { type: 'time' }, yAxis: { type: 'value' }, series: [ { symbolSize: 50, type: 'line', // 回调函数获取当前数据点的symbol值,index对应source中的列位置 symbol: function(params) { return params.data[2]; } } ] };
对象形式的dataset示例
如果dataset使用对象数组的结构,读取方式更直观:
option = { dataset: { source: [ { time: '2023-01-01T15:00:00Z', value: 10, symbol: 'circle' }, { time: '2023-01-01T16:00:00Z', value: 20, symbol: 'rect' }, { time: '2023-01-01T17:00:00Z', value: 15, symbol: 'triangle' } ] }, xAxis: { type: 'time' }, yAxis: { type: 'value' }, series: [ { symbolSize: 50, type: 'line', // 直接通过字段名读取symbol值 symbol: function(params) { return params.data.symbol; } } ] };
这种方式既符合dataset模式的规范,又能灵活控制每个数据点的符号,适合天气预报等需要自定义数据点样式的场景。
内容的提问来源于stack exchange,提问作者tsaarni
相关产品推荐
相关产品推荐

