beeswarm d3js中的颜色特定点(v.4 alpha)

时间:2016-05-03 17:01:21

标签: javascript d3.js svg

伙计们,我正在研究迈克博斯托克最近的那种令人厌恶的可视化。

我想知道,在D3js v.4中,如何改变一个特定点的颜色。在这种情况下,我说的是180多个国家的失业问题,而且我只想挑出"巴西"用不同的颜色。

我如何选择巴西的点并使用不同的颜色?作为最后的手段,我想我可以使用SVG将其单独输出,但它的代码很大,负担。我是D3的新手。

以下是代码:http://codepen.io/voltdatalab/pen/KzrNGo

 var cell = g.append("g")
  .attr("class", "cells")
.selectAll("g").data(d3.voronoi()
    .extent([[-margin.left, -margin.top], [width + margin.right, height + margin.top]])
    .x(function(d) { return d.x; })
    .y(function(d) { return d.y; })
  .polygons(data)).enter().append("g");

  cell.append("circle")
  .attr("r", 5)
  .attr("cx", function(d) { return d.data.x; })
  .attr("cy", function(d) { return d.data.y; })
  ;   

这是我想要做的:

I did this manipulating the SVG, not D3 code

1 个答案:

答案 0 :(得分:0)

您需要将.attr("fill",function(d) { if(d.data.id === "Djibouti")return "red"; })添加到圈子中。以下是您需要做出的更改:

cell.append("circle")
      .attr("r", 5)
      .attr("cx", function(d) { return d.data.x; })
      .attr("cy", function(d) { return d.data.y; })
      .attr("fill",function(d) { if(d.data.id === "Djibouti")return "red"; })
      ;

Djibouti替换为Brazil。 这是一个bin。如果您想要这样的话,请告诉我。