javascript - 雷达图的 d3.js 颜色组

标签 javascript d3.js colors radar-chart

我正在使用这个d3 Radar Chart ,现在我想为组着色。

这是我的数据 -

var data = [
  [
     {axis:"volume(N)",value:0.074095419,group:"one"},
     {axis:"heightBBOX(N)",value:0.618900916,group:"one"},
     {axis:"floor_area(N)",value:0.239036487,group:"one"},
     {axis:"RatioSunExp_TotWall",value:0.670908597,group:"one"
  }],
  [
     {axis:"volume(N)",value:0.373966243,group:"two"},
     {axis:"heightBBOX(N)",value:0.418068276,group:"two"},
     {axis:"floor_area(N)",value:0.039064467,group:"two"},
     {axis:"RatioSunExp_TotWall",value:0.341108011,group:"two"
  }],
  [
     {axis:"volume(N)",value:0.675991163,group:"two"},
     {axis:"heightBBOX(N)",value:0.815015265,group:"two"},
     {axis:"floor_area(N)",value:0.94061374,group:"two"},
     {axis:"RatioSunExp_TotWall",value:0.974062924,group:"two"
  }],
  [
     {axis:"volume(N)",value:0.875950233,group:"two"},
     {axis:"heightBBOX(N)",value:0.210852068,group:"two"},
     {axis:"floor_area(N)",value:0.540645865,group:"two"},
     {axis:"RatioSunExp_TotWall",value:0.074841546,group:"two"
  }]]

这些是我的颜色选项

    var color = d3.scale.ordinal()
        .domain(["one","two"])
        .range(["#CC333F","#53e87d"]);

我想用特定颜色为组 one 着色,为组 two 使用另一种颜色。我该怎么办?

更新:当我使用下面的代码时,所有图表都是黄色的。所以我知道该组是未定义的。我该如何解决这个问题?

color: function(d){
    if(d.group == "one"){
        return "red";
        }
    if(d.group == "two"){
        return "green";
        }
    else{
        return "yellow";
    }
    }

最佳答案

您的代码的问题是在 radarChartOptions 中...

color: function(d){

...不会检索绑定(bind)到每个元素的数据

这里最好的解决方案是查看插件,或向其作者发送电子邮件,以了解他/她如何传递选项。由于我没有时间检查插件文档,这里有一个简单的解决方案,它在渲染路径/圆圈之后绘制它们:

d3.selectAll(".radarArea").each(function(d){
  d3.select(this).style("fill", color(d[0].group))
});

d3.selectAll(".radarStroke").each(function(d){
  d3.select(this).style("stroke", color(d[0].group))
});

d3.selectAll(".radarCircle").each(function(d){
  d3.select(this).style("fill", color(d.group))
});

这是更新后的 fiddle :https://jsfiddle.net/1j59znu9/

关于javascript - 雷达图的 d3.js 颜色组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48247026/

相关文章:

matlab - 告诉 MATLAB 不要更新特定绘图的下一个默认颜色

javascript - vuex : $store. commit vs 直接调用函数

javascript - Node.js:将请求的输出通过管道传输到 crypto.hash

javascript - D3.js:停止转换被打断?

javascript - 如何向服务请求 d3 数据?

javascript - 如何在鼠标悬停时获取直方图中数据元素的索引?

java - Lab颜色空间中的颜色梯度算法

javascript - 创建 jsFiddle/jsbin.com 样式代码编辑器的工具?

javascript - Edge 中的 window.postMessage 时无法访问源对象

javascript - $(document.documentElement) 目标特定元素