Заказ по гистограмме

Я смотрю на упорядочение диаграммы, как в примере ниже, цвет фона генерируется из логического значения, поэтому, я бы хотел упорядочить логическое значение (истинные значения сначала красным), с понижением частоты.

Спасибо

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 можно рисовать сгруппированные бары. Он работает аналогично столбцам с накоплением: вы фактически разделяете свои данные на группы для каждой части каждого цвета, а затем каждый цвет будет ячейкой в ​​каждой группе.

Я не думаю, что эта функция поддерживает сортировку по значению внутри групп, но я подумал, что это стоит упомянуть из-за визуального сходства.

Другие вопросы по тегам