전설이있는 기본 d3 원형 차트를 만들려고합니다. 두 개의 다른 튜토리얼에있는 예제를 따르고 있는데, 어떻게 든 한 예제의 코드가 다른 예제와 잘 작동하지 않습니다. 내가하려고하는 것은 ordinal 척도의 영역을 설정하여 전설을 만드는 데 사용할 수 있습니다.추가 값이 d3 차트 서수 도메인에 삽입됩니다.
다음 줄에 도메인을 설정합니다. 코드를 단계별로 실행하면 [ "HEURISTIC", "ADWARE", "COMPANY_BLACK_LIST", "PUP", "SUSPECTED_MALWARE", "KNOWN_MALWARE"]가 표시됩니다. 이것은 내가 원하는 것입니다.
color.domain(labels)
그러나, 나는 통해 스테핑 계속하면 내가 다음 줄에 도달하면, [ "휴리스틱", "애드웨어", "COMPANY_BLACK_LIST", "PUP", "SUSPECTED_MALWARE"로 도메인 변경, "KNOWN_MALWARE" , 0, 1, 2, 3, 4, 5는]
arcs.append("svg:path")
.attr("fill", function(d, i) { return color(i); })
.attr("d", arc);
질문 : 여섯 개 추가 항목을 일으키는 어떤 것이 도메인에 삽입?
코드 (http://jsfiddle.net/tonicboy/2urZY/5/는) :
여기var w = 150,
h = 100,
r = 50,
color = d3.scale.category20c(),
dataset = [{"name":"HEURISTIC","value":65},{"name":"ADWARE","value":75},{"name":"COMPANY_BLACK_LIST","value":9},{"name":"PUP","value":34},{"name":"SUSPECTED_MALWARE","value":14},{"name":"KNOWN_MALWARE","value":156}],
labels = _.pluck(dataset, "name");
color.domain(labels);
var chart = d3.select("#pie_chart")
.append("svg:svg")
.data([dataset])
.attr("width", "100%")
.attr("height", "100%")
.attr("viewBox", "0 0 " + w + " " + h)
.attr("preserveAspectRatio", "xMinYMin meet");
var vis = chart.append("g")
.attr("transform", "translate(" + (w - r) + "," + r + ")");
var arc = d3.svg.arc()
.outerRadius(r);
var pie = d3.layout.pie()
.value(function(d) { return d.value; });
var arcs = vis.selectAll("g.slice")
.data(pie)
.enter()
.append("svg:g")
.attr("class", "slice");
arcs.append("svg:path")
.attr("fill", function(d, i) { return color(i); })
.attr("d", arc);
var legend = chart.append("g")
.attr("class", "pie-legend")
.selectAll("g")
.data(color.domain())
.enter()
.append("g")
.attr("transform", function(d, i) { return "translate(0," + i * 7 + ")"; });
legend.append("rect")
.attr("width", 5)
.attr("height",5)
.style("fill", color);
legend.append("text")
.attr("x", 8)
.attr("y", 9)
.text(function(d) { return d; });
차트 지금까지 모습입니다 : 당신은 문자열로 서수 규모의 도메인을 설정,하지만 전화하는거야
P.S. 불규칙한 색상 패턴이 마음에 들지 않으면 데이터를 값순으로 정렬 한 후 색상 스케일 도메인을 설정하거나 ['.sort (null)'] (https : /)를 사용하여 원형 차트 기능에 데이터를 정렬하지 말 것. /github.com/mbostock/d3/wiki/Pie-Layout#wiki-sort) : http://jsfiddle.net/2urZY/7/ – AmeliaBR
아, 알겠습니다. 고마워, 너는 나의 문제를 해결했을뿐만 아니라 d3이 어떻게 작동하는지에 대한 큰 교훈을 배웠다! –