2015-06-01 70 views
1

目前我有以下实现,它假定所有项目是不同的;换句话说,数据集中没有公共/分组对象。它工作正常。更改相应的条形码颜色

但是,我想知道如果数据集中有两个常见/分组对象,是否有方法来更改相应的条形颜色?

例如,通过查看以下data[0]和,这些项目的名字的最后对象是一样的,我想给同一颜色对应的块堆。

data[0]=[{"value":29, "series":"item1", "category":"Men", "name":"HY"},{"value":44, "series":"item2", "category":"Men","name":"NY"}] 

data[1]=[{"value":16, "series":"item3", "category":"Women", "name":"RY"},{"value":23, "series":"item5", "category":"Women", "name":"NY"}] 

JSfiddle

回答

1

您需要添加color: function(data){....},然后你可以使用两种方法,

通过添加一些条件要么喜欢这个颜色的功能,并参考jsfiddle

series: [{ 
      type: "column", 
      field: "value", 
      stack: true, 
      name: "#= group.value #", 
      highlight: { 
       visible: false, 
      }, 
      color: function (data) { 

       //check if the item fname is NY 
       if (data.dataItem && data.dataItem.fname == "NY") { 
        //give the color you wanted 
        return "#CC6699"; 
       } 

      } 
     }], 

或者如果你想要的话,像这样的数据添加颜色:

data[0] = [{ 
    "value": 29, 
    "series": "item1", 
    "category": "Men", 
    "fname": "NY", 
    "color" : "#CC6699" 
}, { 
    "value": 44, 
    "series": "item2", 
    "category": "Men", 
    "fname": "GY", 
    "color" : "#99FF99" 
}] 

和彩色功能return data.dataItem.color

+0

非常感谢machun,我只是担心,为什么传奇色彩不符合栏的颜色与你的建议amswer一致。我已经upvoted你的答案, – casillas

+0

可以再看看你的数据源数据,使用这个console.log(data.dataItem.fname);在颜色函数上,我注意到一些数据没有fname,那么它也不会有颜色,并且还有未定义的数据 –