如何在D3.js中创建CSV条目的独占列表?

时间:2013-11-12 21:32:56

标签: javascript csv d3.js visualization data-visualization

我有一个CSV文件,如下所示:

Category,Value
category1,162
category1,151
category2,124
category1,135
category2,315

我想创建一个独有的无序类别列表(没有重复的类别),所以列表应如下所示:

<ul>
  <li>category1</li>
  <li>category2</li>
</ul>

阵列非常大,所以应该很快。 这就是我到目前为止(将CSV的某些部分显示为散点图):

  d3.csv("data.csv", function(error, data) {
    data.forEach(function(d) {
    d.Value = +d.Value;
  });

svg.selectAll(".dot")
  .data(data)
  .enter().append("circle")
  .attr("class", "dot")
  .attr("r", 1)
  .attr("cx", function(d) { return x(d.Value); })
  .attr("cy", 10);

除了svg之外,创建类别列表的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以使用以下类别构建另一个数组:

var categories = [];
data.forEach(function(d) {
  d.Category = Category;
  d.Value = +Value;
  if(categories.indexOf(d.Category) == -1) categories.push(d.Category);
});

// etc

d3.select("body").append("ul").selectAll("li")
  .data(categories)
  .enter().append("li")
  .html(function(d) { return d; });