Я сделал сложную гистограмму, представляющую футболистов в футбольных командах. Диаграмма находится здесь: http://andybarefoot.com/football/path.htmlD3 - элементы переупорядочения на основе их данных
Я использовал d3 и построил страницу для работы в два этапа. Во-первых, я загружаю данные и создаю прямоугольник для каждого игрока. Затем я обновляю параметры прямоугольников на основе данных, назначенных каждому элементу, в зависимости от выбранного вида. Это означает, что различные параметры навигации изменяют размер и изменяют прямоугольники на основе существующих данных, сопоставленных с элементами, но не загружаются дополнительные данные.
Хотя изменение размеров прямоугольников работает правильно, я не могу изменить порядок прямоугольников на основе данные.
Вертикальное положение каждого прямоугольника устанавливается просто «i», умноженное на заданную переменную расстояния. Чтобы изменить порядок, я думал, что могу выбратьВсе все элементы, сортировать на основе соответствующих данных, а затем установить новую вертикальную позицию таким же образом. (т. е. значение «i» изменилось). Однако я не могу заставить это работать.
Вот моя (неудачная) попытка:
// select all elements and then reorder
svg
.selectAll(".team")
.sort(function(a, b) {
return b.totalClubContractDistance - a.totalClubContractDistance;
})
;
// select all elements and reposition according to new order
svg
.selectAll(".team")
.duration(750)
.attr("transform", function(d,i) {
return "translate(0,"+teamSpacing*i+")";
})
;
Это будет лучше, если вы даете скрипке –