Заказ по гистограмме
1 ответ
Я могу придумать два способа сделать это: через многозначное упорядочение или сгруппированную гистограмму.
Многозначный порядок
Хотя chart.ordering() должен возвращать одно значение, вы можете объединить несколько значений в одно значение сортировки.
Предполагая, что вы настроили свою группу, чтобы уменьшенные значения имели поля bool
а также frequency
, вы можете получить одно значение, которое сортирует по bool
первый и frequency
второй:
chart.ordering(function(kv) {
return - (kv.value.bool * 1000 + kv.value.frequency);
});
Это предполагает, что частота не превышает 1000. Вы можете использовать больший множитель, если частота становится выше.
Он также использует трюк, согласно которому логическое значение будет приведено к 1 или 0, когда помещено в арифметическое выражение.
Если ваши сокращенные данные не имеют bool
а также frequency
части, вы можете взглянуть на Как уменьшить несколько значений одновременно? в FAQ. Или обновите свой вопрос с примерами данных и желательно с скрипкой или блоком.
Сгруппированные бары
Похоже, что в вашем примере столько же зеленых столбцов, сколько и красных столбцов, так что экспериментальная функция сгруппированных столбцов также может оказаться подходящей.
В PR можно рисовать сгруппированные бары. Он работает аналогично столбцам с накоплением: вы фактически разделяете свои данные на группы для каждой части каждого цвета, а затем каждый цвет будет ячейкой в каждой группе.
Я не думаю, что эта функция поддерживает сортировку по значению внутри групп, но я подумал, что это стоит упомянуть из-за визуального сходства.