2015-06-01 119 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,那麼它也不會有顏色,並且還有未定義的數據 –