Могу ли я определить цвет точки данных с помощью функции при использовании угловой диаграммы?

https://github.com/GraFiddle/angular-chart

В библиотеке C3 есть пример цвета, зависящего от данных (http://c3js.org/samples/data_color.html):

var chart = c3.generate({
    data: {
        ...,
        color: function (color, d) {
            // d will be 'id' when called for legends
            return d.id && d.id === 'data3' ? d3.rgb(color).darker(d.value / 150) : color;
        }
    }
});

Поэтому я решил добавить функцию color:

dims = {
    dt: {
      axis: 'x',
      name: 'Date',
      displayFormat: '%H:%M:%S',
      dataType: 'datetime'
    }
  };

  // key is something like errorRate etc. 
  dims[key] = {
    axis: 'y',
    name: key,
    type: 'line',
    color: function(color, d) {
      return console.log(arguments);
    }
  };

Но функция цвета, похоже, игнорируется. Есть ли способ сделать цвет, зависящий от функции, с помощью этой библиотеки?


person jcollum    schedule 03.05.2016    source источник


Ответы (2)


Похоже, это всего лишь строка, которую можно разветвить, чтобы поддержать и отправить PR:

RE: https://github.com/GraFiddle/angular-chart/blob/master/src/js/converter.js

   // set color
    if (angular.isString(dimension.color)) {
      configuration.data.colors[key] = dimension.color;
    }         
person Luke Hutton    schedule 03.05.2016

Мне удалось заставить его работать с угловой диаграммой:

 # coffeescript
 graphOptions =  
   data: datapoints
   dimensions: dims
   chart:
     data:
       color: (color, d) ->
         if d.index? and data[d.index]?
           return colors[data[d.index].status]
         else return color

Эта функция будет возвращать значения из хэша цветов на основе значения, которое находится в поле status точки данных.

person jcollum    schedule 18.05.2016