辅助函数不适用于在c3.js中着色多个数据集

时间:2016-06-16 15:28:19

标签: javascript html function c3.js helper-functions

我有以下javascript代码来绘制两个数据集并为每个数据集设置相同的颜色方案:

here's a fiddle

<fieldset>
  <legend><h3>Engine</h3></legend>
  <output for="engine" id="engine">0</output>
  <input id="engine" type="range" min="0" max="10" value="0" step="1" list="0-10" oninput="outputUpdate(this)">
  <input type="checkbox" name="engine-closed" id="engine-closed" onclick='handleClick(this);' value="0" /><label for="engine-closed">Closed</label>
</fieldset>

但是,由于两个数据集都具有相同的颜色方案函数,我想将颜色函数作为自己的辅助函数,并调用它两次,如下所示:

var chart = c3.generate({

  data: {
    x: 'Letter',
    columns:
    [
      ['Letter', 'A','B','C','D'],
      ['test', 25,50,75,100],
      ['test2', 10, 20, 30, 40]
    ],

    type: 'bar',

    colors: {
      test: function(d) {
        return '#'+(0xff0000+(d.value-25)*256*3).toString(16);
      },
      test2: function(d) {
        return '#'+(0xff0000+(d.value-25)*256*3).toString(16);
      }
    },


  },
  axis: {
    x: {
      type: 'category'
    }
  },
  legend: {
    show: false
  }
});

但是,as you can see with this fiddle,辅助函数不起作用,我无法弄清楚原因。我自己添加了控制台打印语句,辅助函数确实返回了与硬编码到两个原始函数时相同的值。

是否有一些非常明显的东西我不知道?

1 个答案:

答案 0 :(得分:1)

&#34;我是否有一些非常明显的遗漏?&#34;

   colors: {
      test: function(d) {
        RETURN getColor(d);
      },
      test2: function(d) {
        RETURN getColor(d);
      }
    },

我一直这样做: - )