Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph amCharts 4(v4)在饼图中设置特定颜色_Graph_Amcharts_Beta - Fatal编程技术网

Graph amCharts 4(v4)在饼图中设置特定颜色

Graph amCharts 4(v4)在饼图中设置特定颜色,graph,amcharts,beta,Graph,Amcharts,Beta,我正在测试此框架Amcharts,并在Amcharts v3中配置特定颜色,如下所示: pieChart = AmCharts.makeChart("chartdiv", { "type": "pie", "colors": ["#388E3C", "#FBC02D", "#0288d1", "#F44336", "#8E24AA"], -- other stuff }); 但我发现很难在Amcharts V4中实现同样的效果。。。我试过这样的方法

我正在测试此框架Amcharts,并在Amcharts v3中配置特定颜色,如下所示:


pieChart = AmCharts.makeChart("chartdiv", {
      "type": "pie",
      "colors": ["#388E3C", "#FBC02D", "#0288d1", "#F44336", "#8E24AA"],
      -- other stuff
    });
但我发现很难在Amcharts V4中实现同样的效果。。。我试过这样的方法


pieSeries.colors._list = am4core.color['#388E3C', '#FBC02D', '#0288D1', '#F44336', '#8E24AA']

pieSeries.slices.template.fill = am4core.color('#388E3C', '#FBC02D', '#0288D1', '#F44336', '#8E24AA')


还是这个


"series": [{
    "type": "PieSeries3D",
    "colors": ["#388E3C", "#FBC02D", "#0288d1", "#F44336", "#8E24AA"],
}]
但最终还是不起作用。。。有人也在这里冒险吗


提前感谢。

colors
是一个
ColorSet
对象,它是AmCharts v4中
color
对象数组的包装器。您必须创建一个
color
对象数组,将它们分配给
ColorSet
对象的
列表
数组,然后将其分配给序列的
colors
属性:

var colorSet = new am4core.ColorSet();
colorSet.list = ["#388E3C", "#FBC02D", "#0288d1", "#F44336", "#8E24AA"].map(function(color) {
  return new am4core.color(color);
});
pieSeries.colors = colorSet;

我发现了一种稍微不同的方法:

  const myColors= [
    "#0000ff",
    "#ff0000",
    "#ffff00",
    "#ff00ff"
  ];
  series.columns.template.adapter.add("fill", (fill, target) => {
    return am4core.color(myColors[target.dataItem.index]);
  });
至少这适用于
am4charts.ColumnSeries()
对象。当然,列数必须等于颜色数。

您可以这样做:

pieSeries.colors.list = [
    new am4core.color('#388E3C'),
    new am4core.color('#FBC02D'),
    new am4core.color('#0288D1'),
    new am4core.color('#F44336'),
    new am4core.color('#8E24AA'),
]
或者像@xorspark

pieSeries.colors.list = ["#388E3C", "#FBC02D", "#0288d1", "#F44336", "#8E24AA"].map(function(color) {
      return new am4core.color(color);
});

医生在这里:

谢谢,我理解错了,谢谢!在雷达图上效果很好。在饼图上也很好。只需为找到此解决方案的人更改series.slices中的series.columns。非常感谢。