基于 c3.js 中的值的条形图颜色

CdS*_*Sdw 4 html javascript graph d3.js c3.js

我在 c3.js 中有以下条形图(这是一个小提琴)

var chart = c3.generate({

  data: {
    x: 'Letter',
    columns:
    [
      ['Letter', 'A','B','C','D'],
      ['value', 25,50,75,100]
    ],

    type: 'bar',

        colors: {
        value: '#FF0000'
    },

  },
  axis: {
    x: {
      type: 'category'
    }
  },
  legend: {
    show: false
  }
});
Run Code Online (Sandbox Code Playgroud)

这会将所有条形设置为红色。我想是吧的颜色是这个梯度从FF0000到10FF00,我相信这是刚刚加入4096色的十进制值的增量。

我希望渐变从 50 开始到 100 结束(也就是说,任何绿色及以下的都是纯红色 FF0000,而 100 是绿色的 10FF00)。

我试图按照这个例子来根据它的值在 c3.js 图表上设置数据点的颜色。在该示例中, 的值data3随着其值的增加而变暗。我一直在尝试修改color: function (color, d),但我似乎无法让它做我想做的任何事情。

任何帮助,将不胜感激。谢谢!

Fab*_*tor 6

我不确定你在里面做了什么color: function,但这是设置它的正确方法。关于您想要的渐变,仅通过增加其十六进制值是无法实现的,因为从黄色变为绿色需要减小该值。以下示例从红色变为黄色:

var chart = c3.generate({
  data: {
    x: 'Letter',
    columns:
    [
      ['Letter', 'A','B','C','D'],
      ['value', 25,50,75,100]
    ],
    type: 'bar',
    colors: {
      value: function(d) {
        return '#'+(0xff0000+(d.value-25)*256*3).toString(16);
      }
    },
  },
  axis: {
    x: {
      type: 'category
    }
  },
  legend: {
    show: false
  }
});
Run Code Online (Sandbox Code Playgroud)

小提琴