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

标签 javascript html function c3.js

我有以下 JavaScript 代码来绘制两个数据集的图表,并且每个数据集具有相同的配色方案:

here's a fiddle

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
  }
});

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

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) {
        getColor(d);
      },
      test2: function(d) {
        getColor(d);
      }
    },


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

function getColor(d){
    return '#'+(0xff0000+(d.value-25)*256*3).toString(16);
}

但是,as you can see with this fiddle ,辅助函数不起作用,我不明白为什么。我自己添加了控制台打印语句,并且辅助函数确实返回了与硬编码到两个原始函数中时相同的值。

我是否遗漏了一些非常明显的东西?

最佳答案

“我遗漏了一些非常明显的东西吗?”

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

我一直在做这样的事情:-)

关于javascript - 辅助函数不适用于 c3.js 中的多个数据集着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863432/

相关文章:

css - HTML5 不支持表格边框

html - 如何关闭 PrismJS CSS 主题中的文本阴影?

javascript - 在 Javascript 中添加和删除表单

javascript - 意外语法错误 : "\n" in javascript/jquery

iphone - 从 HTML 文件解析图像

javascript - 重复函数,同时递增 [i]

c++ - 从函数 c++ 返回一个列表<int>

python - 如何使用字典键值调用函数?

javascript - 如何阻止在 Postman 上发送 undefined variable ?

javascript - 从 PHP/JavaScript 发送到 Python 脚本