У меня есть rowchart, что в настоящее время выглядит следующим образом:Как я могу применить пользовательский (определенный) порядок к строкам диаграммы строк в DC.js?
deltaChart
.width(300)
.height(250)
.dimension(deltaDim)
.group(pointsByDelta)
.xAxis().ticks(4);
В которой deltaDim
измерения состоит из 11 или около того уникальных значений строк, pointsByDelta
представляет родственные отсчеты и deltaChart
имеет типа rowChart.
Поскольку значения deltaDim
являются строковыми, а не числовыми, сортировка не соответствует порядку. Я пробовал применить то, что я нашел в вики, а также на других сообщениях здесь, чтобы вручную переупорядочить, не повезло вообще. Независимо от формата я получаю ошибку консоли: .ordering не является функцией()
Я пробовал просто в заказе, как это:
.ordering(function(d){return -d.value})
Это приводит к ошибке. В идеале я хотел бы быть в состоянии сделать что-то вроде:
.ordering(function(d) {
if(d.value == "5 ft") return 0;
else if(d.value == "4 ft") return 1;
else if(d.value == "3 ft") return 2;
else if(d.value == "2 ft") return 3;
else if(d.value == "1 ft") return 4;
else if(d.value == "0 ft") return 5;
else if(d.value == "-1 ft") return 6;
else if(d.value == "-2 ft") return 7;
else if(d.value == "-3 ft") return 8;
else if(d.value == "-4 ft") return 9;
else if(d.value == "-5 ft") return 10;
else return 11;
})
Похоже, большинство постов на эту тему ответили на способ, как отсортировать в порядке возрастания или убывания. Я даже не смог заставить себя вести себя, и в моем случае мне нужно было диктовать заказ, если это возможно.
Любая помощь приветствуется. Спасибо!
Не знаю, почему люди, отвечая на вопросы о строковыхах, что довольно далеко от базы. Может быть, вы используете действительно старую версию dc.js, которая не поддерживает эту функцию? Он был введен в 1.5 или 1.6. То, что вы показываете выше, должно работать. – Gordon
Гордон, спасибо за записку. Я дважды проверял, я использую 1.6. Из других примеров, которые я видел, я думал, что это выглядит так, как будто это должно сработать ... Я действительно почесываю голову о том, почему я получаю ошибку, даже с менее сложным порядком. – ZFlyGuy
Хмм, может быть, вы пытаетесь вызвать ['.ordering (...)' после вызова '.xAxis (...)'] (https://github.com/dc-js/dc .js/вики/# FAQ почему-делает-все-брейк-после-а-призыв к Xaxis-или-YAxis)? Если вы получаете «.ordering is not a function», это означает, что он либо не существует, либо вы не работаете с объектом диаграммы - не имеет значения, что вы пытаетесь передать ему. – Gordon