gpt4 book ai didi

javascript - 从桑基图中的图例中排除实体

转载 作者:行者123 更新时间:2023-12-03 05:43:59 24 4
gpt4 key购买 nike

我有一个带有开始和结束节点的桑基图。当我使用下面的函数创建图例时。

我想从图例中过滤掉特定节点(第一个和结束节点)。

节点名称始终相同,但随着节点数量动态变化,它们的索引将不同。

这可能吗,还是很复杂?

我可以应用过滤器或排除功能吗

svg.selectAll('.legendOrdinal .cell')
.attr('transform', function(d,i) {
// make 2 column legend
var row = Math.floor(i / items_in_row) * element[0].offsetWidth/2;
return 'translate(' + row +',' + (i % items_in_row) * 21 + ')';
})

           function render_legend(nodes) {
var items_in_row = Math.ceil(nodes.length/2);

d3.select(element[0]).select('#legend').remove();
var svg = d3.select(element[0])
.append("svg")
.attr('width', '100%')
.attr('height', ((items_in_row+1) * 25) + 'px')
.attr('id', 'legend');

var ordinal = d3.scale.ordinal()
.domain(nodes.map(function(d) {
return d.name;
}))
.range(color.range());

// append legend text
if (nodes.length != 0) {
svg.append('text')
.attr('x', 15)
.attr('y', 15)
.text('Enabling infrastructure investments:');
};

svg.append("g")
.attr("class", "legendOrdinal")
.attr("transform", "translate(20, 40)");

var legendOrdinal = d3.legend.color()
.shape("path", d3.svg.symbol().type("circle").size(200)())
.shapePadding(5)
.scale(ordinal);

svg.select(".legendOrdinal")
.call(legendOrdinal);

svg.selectAll('.legendOrdinal .cell')
.attr('transform', function(d,i) {
// make 2 column legend
var row = Math.floor(i / items_in_row) * element[0].offsetWidth/2;
return 'translate(' + row +',' + (i % items_in_row) * 21 + ')';
})
};

最佳答案

您可以对 domain 调用应用过滤吗?

.domain(nodes.filter(function(d, i) {return i > 0 && i < N - 1; /*or anything else */})
.map(function(d) {
return d.name;
}))

关于javascript - 从桑基图中的图例中排除实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40407765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com