echarts - 使用数据集时如何覆盖各个 ECharts 数据点的外观?

标签 echarts

我有一个包含许多数据点的 echarts 图,我使用数据集提供这些数据点。如何仅为某些数据点设置格式选项?

例如如果我没有使用数据集,那么我可能会突出显示单个数据点 like this :

series: [
{
  type: 'bar',
  data: [
    97.7,
    {
      value: 43,
      itemStyle: {
        color: '#ff0000'
      }
    },
    92.5
]

但是using a dataset我没有地方提供这些额外信息:

var myChart = echarts.init(document.getElementById('main'));
myChart.setOption({
  dataset: {
    source: [    
      ['A', 97.7],
      ['B', 43],
      ['C', 92.5]
    ]
  },
  xAxis: { type: 'category' },
  yAxis: {},
  series: [{ type: 'bar' }]
});

如果我尝试在 series[type='bar'].data 中设置选项,则 removes the data supplied by the dataset .

最佳答案

面临同样的问题,并且不相信此功能没有在 ECharts 中实现。我通过使用回调函数找到了解决方案。
通过定义一个对象,在其各自的键上保存每个数据点的颜色,我可以返回定义的颜色:

<div id="main" style="width: 600px;height:400px;"></div>
var myChart = echarts.init(document.getElementById('main'));

let colors = {
  'A': '#FF0000',
  'B': '#00FF00',
  'C': '#0000FF'
};

myChart.setOption({
  dataset: [{
    source: [
      ['name', 'value'],
      ['A', 97.7],
      ['B', 43],
      ['C', 92.5]
    ]
  }],
  xAxis: {
    type: 'category',
  },
  yAxis: {},
  series: {
    type: 'bar',
    itemStyle: {
      color: function(seriesIndex) {
        console.log(seriesIndex);
        return (colors[seriesIndex.name]);
      }
    }
  }
});

fiddle
此外,我向数据集添加了一个可选的标题行。这是不必要的,因为 ECharts 通过“名称”引用数据集中的第一列。为了更加清晰起见,我向该函数添加了一条日志记录语句,以便您可以深入了解渲染图表时如何处理数据集。


如果需要更简单的解决方案,可以通过创建颜色数组并将系列对象中的 colorBy 选项设置为“data”来实现 - 请参阅 ECharts documentation .
这只是迭代颜色列表并将它们分配给集合中的每个条目:

<div id="main" style="width: 600px;height:400px;"></div>
var myChart = echarts.init(document.getElementById('main'));

myChart.setOption({
  dataset: [{
    source: [
      ['name', 'value'],
      ['A', 97.7],
      ['B', 43],
      ['C', 92.5]
    ]
  }],
  xAxis: {
    type: 'category',
  },
  color: [
    '#FF0000',
    '#00FF00',
    '#0000FF'
  ],
  yAxis: {},
  series: {
    type: 'bar',
    colorBy: 'data',
  }
});

fiddle

关于echarts - 使用数据集时如何覆盖各个 ECharts 数据点的外观?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71732931/

相关文章:

javascript - 重叠条形图 apache echarts 百度

javascript - 如何使用 Echarts Js 在 MarkPoint 属性中自动设置 symbolSize

jquery - echarts Y轴标签具有垂直文本

r - 根据echarts4r中的变量添加彩色点

javascript - 如何将正差、负差呈现为 eCharts 中两条线之间的面积?

vue.js - vue一文件,echarts报错xAxis "0"not found

ruby-on-rails - 样式echarts - 无法修改标题颜色

javascript - ECharts自动高度

javascript - TypeError : Object(. ..) 不是带有 ECharts 的 Ionic 4 应用程序中的函数

javascript - Echarts3.0在堆积条形图中y轴显示百分比