Я новичок в d3.js (в настоящее время использую d3.v4) и застреваю, пытаясь использовать d3.nest для построения нескольких строк.d3 Вложенная строка graph
Это код, у меня есть:
var color = d3.scaleOrdinal().range(
'#673ab7',
'#9c27b0',
'#e91e63',
'#f44336',
'#ff5722',
'#ff9800',
'#ffc107',
'#ffeb3b',
'#cddc39',
'#8bc34a',
'#4caf50',
'#009688']);
var line = d3.line()
.x(function(d) { return x(d.day); })
.y(function(d) { return y(d.temp); });
d3.csv('/static/data/temp_d3.csv', function(error, data){
data.forEach(function(d){
d.day= +d.day,
d.temp= +d.temp;
});
//nest the entries by month
var dataNest = d3.nest()
.key(function(d) {return d.month;}).sortKeys(d3.ascending)
.key(function(d) {return d.day;}).sortKeys(d3.ascending)
.entries(data);
//loop through each symbol/key
dataNest.forEach(function(d){
svg.append('path')
.data([data])
.attr('class','line')
.style('stroke',function() {
return d.color = color(d.key);})
.attr('d', line);
});
});//end of read csv
This is the graph I get, which doesn't seem like the points are sorted at all. Мой файл данных в формате
[month,day,temp]
[x , y ,z]
.
.
[x, y, z ]
и файл не отсортирован каким-либо образом. Я хочу гнездиться и сортировать по месяцам и дням и иметь 12 разных линий (с разными цветами) на сюжете. Может ли кто-нибудь мне помочь? Благодарю.
определенно хорошая работа для избавления от forEach - в большинстве (хороших) кода d3 Я никогда не видел цикл for! – danimal