d3js:没有唯一标签的序数标度

时间:2018-06-11 10:54:13

标签: d3.js

我尝试使用文本创建热图。使用示例我创建了以下代码:

    for (var i = 0; i < trgLength; ++i) {
        for (var j = 0; j < srcLength; ++j) {
            var newItem = {}
            newItem.srcWord = decodeHTML(data[k].src[j])
            newItem.trgWord = decodeHTML(data[k].trg[i])
            newItem.value = data[k].attentions[i][j]
            sen_data.push(newItem)
        }
    }
    var x_elements = data[k].src.map(function(item){return decodeHTML(item)}),
        y_elements = data[k].trg.map(function(item){return decodeHTML(item)});

    var xScale = d3.scale.ordinal()
        .domain(x_elements)
        .rangeBands([0, x_elements.length * itemSize]);

    var xAxis = d3.svg.axis()
        .scale(xScale)
        .tickFormat(function (d) {
            return d;
        })
        .orient("top")

    var yScale = d3.scale.ordinal()
        .domain(y_elements)
        .rangeBands([0, y_elements.length * itemSize]);

    var yAxis = d3.svg.axis()
        .scale(yScale)
        .tickFormat(function (d) {
            return d;
        })
        .orient("left");
     var cells = svg.selectAll('rect')
        .data(sen_data)
        .enter().append('g').append('rect')
        .attr('class', 'cell')
        .attr('width', cellSize)
        .attr('height', cellSize)
        .attr('y', function (d) {
            return yScale(d.trgWord);
        })
        .attr('x', function (d) {
            return xScale(d.srcWord);
        })

如果句子中的单词(src和target)是唯一的,这就可以了。如果不是,则仅绘制该单词的一个实例。 有没有办法单独编码单词?我正在考虑使用句子中的位置,然后更改标签,但我找不到一个简单的方法来实现它

0 个答案:

没有答案