d3查找数据类别的第一个条目

d3 find first entry of data category

本文关键字:第一个 查找 数据 d3      更新时间:2023-09-26

我正在制作一个d3图表,尝试执行以下操作:我有不同的类别,我只想在类别标签第一次出现时显示它(因为我无论如何都是按类别排序的)。我试过这个:

    d.isFirstInstanceOfCategory = (i === 0 || d.Kategorie !== data[i-1].Kategorie);

但这只是检查前一个数据条目是否与当前数据条目相同。然而,我需要检查的是,它是否是前面所有条目中的第一个。有人能帮忙吗?感谢

我还没有足够的声誉发表评论,所以如果需要更多信息,我会更新我的回答。如果它已经排序了,那么它不应该是前面所有条目中的第一个吗。如果未排序,则可以根据类别项的数量创建另一个数组,并在首次出现时标记该类别。

d.isFirstInstanceOfCategory = (i === 0 || d.Kategorie !== data[i-1].Kategorie && d.Kategorie.NotAlreadyFlagged)

以下是一些排序选项,但看起来您已经涵盖了这些选项。

1) 可排序条形图

svg.selectAll(".bar")
        .sort(function(a, b) { return x0(a.letter) - x0(b.letter); });

2) D3排序(),带有CSV数据

function render(d3Comparator) {
    if(d3Comparator) data = data.sort(function(a, b) {
        return d3[d3Comparator](a.expense, b.expense);
    });
<button onclick="render('ascending')">Sort ascending!</button>
<button onclick="render('descending')">Sort descending!</button>