Облако слов d3 определяет индивидуальный цвет слова
Я использую библиотеку JD Word Cloud D3. Я понимаю, как изменить цвета облака. Для этого я использую следующий код:
ProductDetailView.prototype._drawCloud = function() {
function draw(words) {
var colors = [
'#3498DB', '#1478BB', '#00589B', '#54A8FB', '#74C8FF'
];
Тем не менее, я хочу иметь возможность указать цвет для определенных слов. Мне не ясно, как это сделать, но я нашел в сети пример, предполагающий, что это возможно:
http://community.qlik.com/message/265261#265261
Кто-нибудь может объяснить, как бы я указывал цвет определенных слов в облаке? Например, я хочу, чтобы все республиканцы в моем облаке были окрашены в красный цвет. Я знаю, какие слова являются республиканцами. Как мне указать их цвет?
2 ответа
Я сделал это так:
1) В loadWords()
сопоставить любой цвет, который я хочу присвоить конкретному объекту
function loadWords(){
var word1 = {
text: 'word',
size: 32,
color:'#FF00FF'
};
var word2 = {
text: 'word2',
size: 45,
color:'#3498DB'
};
return [word,word2]
}
d3.layout.cloud().size([300, 300])
.words(loadWords())
...
.start();
2) Определить функцию отображения
function fillColor(d,i){
return d.color;
}
3) И чтобы function draw(words) {...
Добавь это
.style("fill", fillColor)
Самый простой способ сделать это - изменить следующую строку
.style("fill", function(d, i) { return fill(i); })
в
.style("fill", function(d, i) { if (check_for_republican) return republican_color ; else return democrat_color })