Я работаю с NVD3, чтобы составить диаграмму солнечных лучей. Я новичок в D3, поэтому я использую NVD3 для абстрагирования некоторых более сложных вещей. Сейчас я работаю с простым примером, который я получил из Интернета, но пытаюсь покрасить узлы (дуги) на основе атрибута size
в JSON. Я знаю, что NVD3 имеет возможность использовать color
функцию в настройках диаграммы, так это то, что я пытался использовать так:Цвет каждой дуги sunburst на основе значения размера
chart: {
type: 'sunburstChart',
height: 450,
color: function(d) {
if (d.size > 3000) {
return "red";
} else if (d.size <= 3000) {
return "green";
} else {
return "gray";
}
},
duration: 250
}
Но, как вы можете видеть из plunker я работаю, что приводит только серый , потому что на самом деле он не получает значение от d.size
(это просто неопределенно, и я не уверен, почему).
Используя регулярные D3, который я пытаюсь избежать, я могу получить результат желания от этого:
var path = g.append("path")
.attr("class","myArc")
.attr("d", arc)
.attr("name",function(d){return "path Arc name " + d.name;})
.style("fill", function(d) {
if(d.size > 3000) {
return "green";
} else if(d.size < 3000){
return "red";
} else {
return "gray";
}
})
.on("click", click)
... //etc
я модифицированный регулярного D3 SunBurst примера, чтобы получить, что с желаемым результатом:
Я знаю, что этикетки подвешены, но это не важно здесь. Я хотел бы получить тот же результат, что и обычный D3, но с абстракцией NVD3. Я не нашел хороших примеров, в которых упоминается использование color: function()
. Заранее спасибо.
Ницца. Это очень близко к тому, что я ищу, но мне интересно, почему значения, отображаемые в подсказках, теперь всего лишь 1 вместо их истинных значений. Кроме того, любая идея, почему там есть белая дуга. Раньше в его местоположении называли «данные». то же самое происходит, если вы добавляете больше дочерних узлов в некоторые из листьев (он создает белых родителей, которые не могут быть интерактивными). Как в этом плункере [здесь] (http://plnkr.co/edit/Vmg0pN?p=preview) , Обратите внимание на верхнюю левую сторону Sunburst и ту же самую верхнюю правую в вашем примере. – erp
Хорошо, что проблема была связана с тем, что график был настроен на подсчет, а не на размер (извините :)), но я все еще пытаюсь найти решение для появления белых дуг. Вопрос определенно возникает, когда я добавляю библиотеки javascript. Раскраска не работает без них, но когда я добавляю их, раскраска работает, но появляются белые дуги. – erp
Библиотеки javascript в cdn не поддерживают '' groupColorByParent ": false' только библиотеки в github dist wrk. в отношении белой вещи, которую я не знаю, вы можете увидеть ту же проблему в своей демонстрации http://krispo.github.io/angular-nvd3/#/sunburstChart – Cyril