2016-05-04 10 views
1

Ich habe bereits ein Code parallel Graph-Koordinaten, funktioniert alles einwandfrei. Jetzt versuche ich Farben zu verwenden, um die Visualisierung der parallelen Koordinaten farblich zu kodieren, aber etwas stimmt nicht. In Dataset (http://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data) Ich habe verschiedene Namen von Weinarten (1. Spalte ist Klassenbezeichner (1-3)), aber in Graph zieht nur eine Farbe. Könnte mir jemand helfen?Farbcodierung Parallel Koordinaten

Graph:

enter image description here

enter code here 
    // CREATE A COLOR SCALE 
var color = d3.scale.ordinal() 
    .domain(['1','2','3']) 
    .range(['red','blue','green']) 

d3.csv("wine.csv", function(error, wine) { 

    // Extract the list of dimensions and create a scale for each. 
    x.domain(dimensions = d3.keys(wine[0]).filter(function(d) { 
    return d != "name" && (y[d] = d3.scale.linear() 
     .domain(d3.extent(wine, function(p) { return +p[d]; })) 
     .range([h, 0])); 
    })); 

    // Add grey background lines for context. 
    background = svg.append("g") 
     .attr("class", "background") 
    .selectAll("path") 
     .data(wine) 
    .enter().append("path") 
     .attr("d", path); 

    // USE THE COLOR SCALE TO SET THE STROKE BASED ON THE DATA 
    foreground = svg.append("g") 
     .attr("class", "foreground") 
    .selectAll("path") 
     .data(wine) 
    .enter().append("path") 
     .attr("d", path) 
     .attr("stroke", function(d) { 
     var species = d.name.slice(0,d.name.indexOf(' ')); 
     return color(species); 
     }) 
+0

Was sind die Werte für D.name? – thatOneGuy

+0

Wenn dies eine Binomialnomenklatur ist, erhalten Sie nur die Gattung mit 'var species'. Wenn Sie mit binomischen Namen zu tun hat, wie „Vitis vinifera“, die beste Idee, die Gattung und die Artepitheton zusammen beitritt, mit dieser: str = str.replace (/ \ s/g, ‚‘); Es wird "Vitis vinifera" in "Vitisvinifera" verwandeln. –

+0

ich als „Name“ 1. Spalte von Dataset mit dem Namen (http://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data) Werte sind 1,2,3 – Santa

Antwort

1

Wenn Sie bereits Ihre Ordinalskala für die Farben mit dem domain und range definiert haben, müssen Sie nur Ihre Linien nach d.name färben müssen:

.attr("stroke", function(d) { 
    return color(d.name); 
    });