图例和条形图颜色不匹配

cas*_*las 1 javascript kendo-ui kendo-chart

我有以下实现,我使用colorField分配颜色.但是,即使我正确地为条形图堆栈对象着色,但此颜色与图例颜色不匹配.我认为它应该以某种方式绑定,我该如何解决?

我用过colorField,因为我想为bar stack列中的配对对象分配相同的颜色.

dataSample:

data[0] = {
    "value": 29,
    "series": 1,
    "category": "Men",
    "fname": "NY",
    "valueColor": "black"
}, 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

http://jsfiddle.net/fm79hsms/13/

JFl*_*lox 6

这是一个解决方案,虽然它有点像hacky.

小提琴

我使用legend.item.visual来重绘图例并从数据中提取valueColor,这很好地传递给了legened.item.visual函数.

legend: {
        item: {
            visual: function (e) {

                var color = ""

                for (var i=0;i<e.series.data.length;i++){
                    if (e.series.data[i].valueColor != "" && e.series.data[i].fname != "") {
                    color = e.series.data[i].valueColor
                    }
                }

              var rect = new kendo.geometry.Rect([0, 0], [100, 50]);
              var layout = new kendo.drawing.Layout(rect, {
                spacing: 5,
                alignItems: "center"
              });

              var marker = new kendo.drawing.Path({
                fill: {
                  color: color
                }
              }).moveTo(10, 0).lineTo(10, 10).lineTo(0, 10).lineTo(0,0).close();

              var label = new kendo.drawing.Text(e.series.name, [0, 0], {
                fill: {
                  color: "black"
                }
              });

              layout.append(marker, label);
              layout.reflow()

              return layout;
            }
         }
     },
Run Code Online (Sandbox Code Playgroud)