我正在使用amcharts库创建一个(非ribbon)和弦图,我想知道是否有一种方法可以给存储在数据集中的特定值的节点排序。
我正在寻找的是,如果我们有这样的数据集。
data = [
{"from": A, "number": 3},
{"from": B, "number": 1},
{"from": C, "number": 2},
{"from": A, "to": C, "value": 1},
{"from": B, "to": A, "value": 1},
{"from": B, "to": C, "value": 1},
]
那么,节点可以根据以下情况进行排序 number
所以在这个例子中,我们有B > C > A。
根据我在API和文档中看到的内容,我发现我们可以用 chart.sortBy
与 default
将根据节点在数据集中出现的顺序进行排序,这里是A>B>C)。name
(以 FromName
节点的数据域属性,按字母顺序排列,这里也有A>B>C)或 value
(以总数排序) value
节点的datafield属性,即从这个节点出去的所有加权链接的总和,这里是B>A>C)。但是,除了这3个属性,我找不到其他的东西......。
你知道是否有一种方法,可以让一个个性化的 sort
对节点进行排序?
解决方案,正如@norbitrial所建议的那样,是对数据集进行排序。number
的默认选项之前,使用 sortBy
的数据集上。这是我用来对数据集进行排序的代码(虽然可能不是最理想的,但至少它是有效的!)。
data.sort(function(x, y) {
if ("number" in x && !("number" in y)) {
return -1;
} else if ("number" in y && !("number" in x)) {
return 1;
}
if (x["number"] < y["number"]) {
return -1;
}else if (x["number"] > y["number"]) {
return 1;
}
return 0;
})