Ich versuche ein ähnliches Radardiagramm zu erstellen ( http://www.larsko.org/v/euc/).D3.js Radartext Strichzeichnung
Ich konnte Achsen erstellen (my work so far), aber ich habe ein Problem, Linien darin zu zeichnen.
Zum Beispiel, wenn ich eine Liste von Werten habe, so wie unten, wie kann ich eine Linie in der Radardiagramm zeichnen?
var TempData = [56.784, 5.898, 3.417, 0, 0, 0]
Edit: Ich habe Code enthalten. Ich habe ein Problem, XY-Koordinaten zu finden, und ich denke, XY-Wert muss von "Skalen" abgeleitet werden.
var width = 1000,
height = 960,
r = (960/2) - 160;
var svg = d3.select("#radar")
.append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(" + width/2 + ", " + height/2 + ")");
d3.csv("data/results.csv", function(data) {
var headerNames = d3.keys(data[0]);
headerNames.splice(0, 1); //Remove 'scenario'
var minList = $.map(headerNames, function(h) {
return d3.min($.map(data, function(d) {
return d[h];
}));
}),
maxList = $.map(headerNames, function(h) {
return d3.max($.map(data, function(d) {
return d[h];
}));
}),
scales = $.map(headerNames, function(h, i) {
return d3.scale.linear()
.domain([minList[i], maxList[i]])
.range([50, r]);
}),
axes = $.map(headerNames, function(h, i) {
return d3.svg.axis()
.scale(scales[i])
.tickSize(4);
});
function angle(i) {
return i * (2 * Math.PI/headerNames.length) + Math.PI/headerNames.length;
}
var line = d3.svg.line()
.interpolate("cardinal-closed")
/* computing X and Y: I am having a problem here
.x(function(d){ return scales(d); })
.y(function(d){ return scales(d); }); */
$.each(axes, function(i, a) {
svg.append("g")
.attr("transform", "rotate(" + Math.round(angle(i) * (180/Math.PI)) + ")")
.call(a)
.selectAll("text")
.attr("text-anchor", "middle")
.attr("transform", function(d) {
return "rotate(" + -angle(i) * (180/Math.PI) + ")";
})
//Drawing line
svg.selectAll(".layer")
.data(data)
.enter()
.append("path")
.attr("class", "layer")
.attr("d", function(d) {
return line(d);
})
}) // End CSV
Beispiel results.csv Szenario n_dead_oaks, percent_dead_oaks, infected_area_ha, money_spent, area_treated_ha, price_per_oak Basislinie, 56784,5.898,3417,0,0,0 scen2,52725,5.477,3294, 382036,35,94.12071939 RS_1,58037,6.028,3407,796705,59, -635,8379888 RS_2,33571,3.487,2555,1841047,104,79.31103261 RS_3,46111,4.79,2762,1176461,61,110.227771
Bitte keine Bilder/Screencaps posten. Zeigen Sie stattdessen Ihren Code und was Sie bisher versucht haben. Erhalten Sie Fehler? Haben Sie versucht, Code zu schreiben, um die Zeilen selbst zu zeichnen? Stack ist keine How-to-Community. – Squeegy
Vielen Dank für Ihren Rat. Dieser Beitrag ist mein erster in der Community und ich lehnte das inklusive Code ab, um zu zeigen, dass deine Arbeit wichtig ist. Ich habe meine Arbeit diesmal eingeschlossen. – Mackey