Опросы с ранжированным выбором некорректно отображаются на круговых диаграммах

:information_source: Обзор

Использование типа диаграммы Pie (круговая) для опросов с ранжированным выбором приводит к некорректным результатам. Каждый вариант получает по одному голосу, независимо от того, как пользователь на самом деле расположил свои предпочтения. Такое поведение делает диаграмму вводящей в заблуждение и несовместимой с логикой ранжированного выбора.

:walking_woman: Шаги для воспроизведения

  1. В редакторе нажмите Build Poll (Создать опрос).
  2. Откройте Advanced options (Дополнительные настройки) (иконка шестеренки).
  3. Заполните поля опроса (необязательно), но в качестве типа диаграммы выберите «Pie» вместо «Bar».
  4. Прокрутите обратно вверх и выберите Ranked Choice (Ранжированный выбор) в качестве типа опроса.
  5. Сохраните и опубликуйте опрос.

На этом этапе опрос будет использовать тип диаграммы Pie, который не предназначен для работы с голосованием с ранжированным выбором.

:white_check_mark: Ожидаемый результат

Система должна либо:

  • Автоматически переключаться на тип диаграммы Bar (столбчатая) при выборе «Ranked Choice»,
  • Либо полностью запрещать пользователю выбирать Pie для опросов с ранжированным выбором.

:x: Фактический результат

Опрос использует диаграмму Pie и подсчитывает по одному голосу на каждый вариант, даже если пользователь указал только один или несколько предпочтений. Диаграмма отображает все варианты одинаково, что делает результаты бессмысленными:

:books: Дополнительная информация

Применен временный обходной путь:

poll = Poll.find_by(id: 123)
poll.chart_type = 'bar'
poll.save

Ручное изменение типа диаграммы опроса с pie на bar в консоли исправляет проблему и восстанавливает корректные результаты:

3 лайка

К сведению, интересный частный случай @merefield

1 лайк

Это не является допустимым пограничным случаем.

В ядре системы на данный момент нет поддерживаемого графика для метода ранжирования (Ranked Choice) — и это сделано намеренно.

Он никогда не предназначался для отображения в виде круговой диаграммы. Метод ранжирования состоит из нескольких туров, которые невозможно корректно представить на одной круговой диаграмме.

Если здесь и есть ошибка, то, скорее всего, кто-то смог выбрать тип графика, хотя интерфейс должен был это предотвратить. Возможно, кто-то изменил код настройки, чтобы разрешить такое действие? Стоит отметить, что вы всегда могли «взломать» исходный Markdown, чтобы изменить атрибуты после завершения мастера настройки (что не рекомендуется).

Ранее я предлагал подходящий вариант графика — диаграмму Санки (Sankey), которая работала, но сообщество Discourse отказалось её объединять, так как она добавляет (хотя и хорошо поддерживаемую и популярную) зависимую библиотеку. Это справедливо.

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

Моя форк-версия плагина показывает диаграмму Санки для метода ранжирования. Скорее всего, она сильно устарела и требует поддержки, так как никто не финансирует её разработку:

Вот выборочные изменения, относящиеся к диаграмме Санки:

Делайте с этим всё, что хотите.

Это довольно круто, если можно так выразиться.

Это определённо лучше, чем круговая диаграмма!! :sweat_smile:

Я рекомендую переместить эту тему в раздел Contribute > Feature с формулировкой запроса функции:

  • добавить подходящую визуализацию для метода ранжирования.
1 лайк