私はここで非効率的であるように感じる。私は配列から伝説を作成しようとしており、これを行うにはあまりにも多くのことを書いているようです。誰かが最適化できるか教えてもらえますか?d3.jsで凡例を作成
http://jsbin.com/foqesivice/edit?js,console,output
var data = [
{name: "AnotherLong"},
{name: "BigData"},
{name: "What"},
{name: "Something"},
{name: "Smalls"}
];
var margin = {top: 10, right: 10, bottom: 10, left: 10};
var color = d3.scale.category20c();
var svg = d3.select("body").append("svg")
.attr("width", 400 - margin.left - margin.right)
.attr("height", 1000 - margin.top - margin.bottom)
var g = svg.selectAll(".row")
.data(data)
.enter().append("svg:g")
var rectangles = g.selectAll(".cell")
.data(data)
.enter().append("svg:rect")
.attr("width", 19)
.attr("height", 19)
.attr("transform", function(d, i) { return "translate(0," + i * 20 + ")"; })
.style("fill", function(d, i){return color(i);})
var text = g.selectAll(".text")
.data(data)
.enter().append("svg:text")
.attr("x", 24)
.attr("y", 9)
.attr("dy", ".35em")
.attr("transform", function(d, i) { return "translate(0," + i * 20 + ")"; })
.text(function(d){return d.name;})
EDIT:私を悩ます
もう一つ。私のスタイリングはなんらかの理由で大胆なようです。私はスタイルを定義していません。そのデフォルトの動作ですか?
はい、あなたの答えは、私がd3で取り組んできたものにもっとよく似ています。ありがとうございました! – konrad