Ich arbeite mit d3.js, um ein einfaches Balkendiagramm zu erstellen. Ich habe Balkendiagramme mit Daten erstellt. Jetzt versuche ich jedoch, nur eine Spalte von csvfile zu verwenden.Textfelder aus csv-Dataset in d3 js zählen
Alle Elemente aus dieser Spalte sind Zeichenfolgenwerte, insbesondere Städte. Einige von ihnen sind einzigartig, andere erscheinen mehr als einmal.
Beispiel:
city
Mor
Gdl
Mex
Bog
Mad
Rio
Bar
Mor
Gdl
Mor
Rio
Mor
Bog
Mor
Ich möchte ein Balkendiagramm mit dieser Spalte erstellen. x value
wird die Stadt sein und y value
wird die Anzahl sein, wie oft die Stadt erscheint.
Ich arbeite mit diesem Code. Allerdings kann ich nicht y value
erhalten:
d3.csv("../cities.csv", function(error, dataset) {
dataset.forEach(function(d) {
d.count = +d.city;
});
x.domain(dataset.map(function(d) { return d.city; }));
y.domain([0, d3.max(dataset, function(d) { return d.count; })]);
svg.append('g')
.attr('class', 'x axis')
.attr('transform', 'translate(0,' + h + ")")
.call(xAxis);
svg.append('g')
.attr('class', 'y axis')
.call(yAxis)
.append('text')
.attr('transform', 'rotate(-90)')
.attr('y', 6)
.attr('dy', '.71em')
.style('text-anchor', 'end')
.text('Número de contratistas');
var bars = svg.selectAll('.bar')
.data(dataset)
.enter()
.append('rect')
.attr('class', 'bar')
.attr('x', function(d) { return x(d.city); })
.attr('width', x.rangeBand())
.attr('y', function(d) { return y(d.count); })
.attr('height', function(d) { return h - y(dataset.map(d.count));});
});
Von diesem Code, mein erster Versuch, das Zählen von jeder Stadt zu bekommen war:
dataset.forEach(function(d) {
d.count = +d.city;
});
Wie kann ich diese fucntion verbessern, um diese Art zu erhalten von Balkendiagramm?
Alle Vorschläge zur Verbesserung sind willkommen! Vielen Dank.
Danke, @Stuurpiek Ich versuchte Ihr Beispiel, aber es nicht die Werte aus jeder Stadt. Ich denke, wenn d3.histogram() eine Lösung sein könnte. – estebanpdl
Nach einer kleinen Änderung meines Codes funktioniert Ihr Beispiel großartig! Vielen Dank! – estebanpdl
Eine Frage: Was bedeutet 'undefiniert'? – estebanpdl