繁体   English   中英

更改C3.js堆叠条形图中的单列颜色

[英]Changing colors of single column in C3.js stacked bar chart

我试图在c3.js堆积的条形图中突出显示一组值。 此示例之后,我可以更改非堆叠条形图中单个条形的颜色,但无法弄清楚如何识别单个堆叠的索引。 我的JS是:

var chart = c3.generate({
  bindto: '#chart1',
  data: {
    x: 'x',
    columns: [
      ['x', "1ST", "2ND", "3RD", "4TH"],
      ['A', 6, 8, 2, 9],
      ['B', 3, 4, 1, 6],
      ['C', 4, 4, 2, 4]

    ],
    type: 'bar',
    groups: [
      ['A', 'B', 'C']
    ],
    colors: {
      A: '#666666',
      B: '#cccccc',
      C: '#428bca',
    },
    order: 'asc'
  },
  axis: {
    x: {
      type: 'category'
    }
  }
});

该示例的方法是:

color: function (color, f) {
   return f.index === 4 ? "#dd0" : "#ddd";
}

正在进行中的JSFIDDLE 如何获取单个堆栈的3个值的索引,然后使用它们更改其颜色? 例如,如果我想通过将颜色更改为一组红色来突出显示“ 2ND”?

从此处的示例改编-> http://c3js.org/samples/data_color.html

    color : function (color, d) {
        return d.index && d.index === 2 ? "#dd0" : color;
    },

https://jsfiddle.net/kmjpg30c/3/

d.index为您提供堆栈的索引-但是,在您的示例中,由于索引从0开始,所以没有索引4,因此您有[0,1,2,3]作为可能的范围

因此,请针对索引进行测试,并在匹配时返回新颜色,如果不返回原先传入的color ,则返回新color

(当color函数被其他例程使用时, d.index测试就出现了,这些例程仅传入指示数据集的字符串(示例中为“ A”,“ B”,“ C”),因此您需要测试首先存在d需要的字段。

如果只想突出显示堆栈的一部分,也可以使用.id字段,例如d.index === 2 && d.id === "A"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM