D3JS V5 не может создать фиксированный размер фрагментов легенды при обновлении данных - PullRequest
0 голосов
/ 10 февраля 2019

Я хочу иметь мою легенду с 9 градациями.Когда данные обновляются, будет изменен только текст легенды.Я не могу сделать это через код ниже.Когда я обновлю данные, количество градаций будет изменяться в зависимости от минимальных и максимальных значений новых данных.Я поставил галочки (9), но это не работает.Любые предложения о том, как это настроить?Фиксированный диапазон шкалы не является предпочтительным.

var z = d3.scaleLinear().range(["#fff7f3", "#49006a"])
    z.domain(d3.extent(data, function(d) {return d.count}))

var legend = svg.selectAll(".legend").remove()  
    legend = svg.selectAll(".legend")
        .data(z.ticks(9).slice(1).reverse())    
        .enter().append("g")
            .attr("class", "legend")
            .attr("transform", function(d, i) { return "translate(" +   
                 -(-290 + i * 35) + "," + 415 + ")"; })

    legend.append("rect")
        .attr("x", 0)
        .attr("y", 0)
        .attr("width", 35)
        .attr("height", 25)
        .style("fill", z)

    legend.append("text")
        .attr("x", -1)
        .attr("y", 35)
        .attr("dy", ".35em")
        .text(String)
        .attr("font-size", "11px")
...