D3 词云指定单个词的颜色

d3 word cloud specify individual word color

本文关键字:单个词 颜色 D3      更新时间:2023-09-26

我正在使用JD词云d3库。我了解如何更改云的颜色。为此,我使用以下代码:

  ProductDetailView.prototype._drawCloud = function() {
    function draw(words) {
      var colors = [
        '#3498DB', '#1478BB', '#00589B', '#54A8FB', '#74C8FF'
      ];

但是,我希望能够指定某些单词的颜色。我不清楚如何做到这一点,但我在网上找到了一个例子,表明这是可能的:

http://community.qlik.com/message/265261#265261

谁能解释一下我将如何指定云中某些单词的颜色?例如,我希望我云中的所有共和党人都被涂成红色。我知道哪些词是共和党人。如何指定它们的颜色?

我是这样做的:

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 })