순위 선택 투표는 파이 차트로 제대로 표시되지 않음

:information_source: 개요

Pie 차트 유형을 Ranked Choice(순위 선택) 투표에 사용하면 잘못된 결과가 생성됩니다. 사용자가 실제로 선택지를 어떻게 순위를 매겼는지에 관계없이 각 선택지에 1표씩만 집계됩니다. 이 동작은 차트를 오해의 소지가 있게 만들며, 순위 선택 로직과 호환되지 않습니다.

:walking_woman: 재현 방법

  1. 작성기에 있는 Build Poll을 클릭합니다.
  2. Advanced options(고급 옵션, 기어 아이콘)를 엽니다.
  3. 투표 필드를 입력합니다(선택 사항), 하지만 차트 유형에서 “Bar” 대신 **“Pie”**를 선택합니다.
  4. 위로 스크롤하여 투표 유형으로 Ranked Choice를 선택합니다.
  5. 투표를 저장하고 게시합니다.

이 시점에서 투표는 순위 선택 투표와 함께 작동하도록 설계되지 않은 Pie 차트 유형을 사용하게 됩니다.

:white_check_mark: 예상 결과

시스템은 다음 중 하나를 수행해야 합니다:

  • "Ranked Choice"가 선택되면 자동으로 Bar 차트로 전환하거나,
  • 순위 선택 투표에서 Pie를 선택하는 것을 아예 방지해야 합니다.

:x: 관찰된 결과

투표는 Pie 차트를 사용하며, 사용자가 하나 또는 몇 개의 선택지만 순위를 매겼더라도 선택지당 1표를 집계합니다. 차트는 모든 선택지를 동일하게 표시하여 결과를 무의미하게 만듭니다:

:books: 추가 정보

적용된 임시 해결책:

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

콘솔에서 투표의 차트 유형을 pie에서 bar로 수동으로 업데이트하면 문제가 수정되고 정확한 결과가 복원됩니다:

3개의 좋아요

참고로 흥미로운 엣지 케이스입니다 @merefield

1개의 좋아요

이것은 유효한 에지 케이스가 아닙니다.

Ranked Choice(순위 선택제)는 현재 코어에서 지원되는 그래프가 없습니다 - 이는 의도적인 것입니다.

이는 파이 차트로 시각화될 수 없도록 설계되었습니다. Ranked Choice는 라운드로 구성되어 있으며, 이는 단일 파이 차트로 표현할 수 없습니다.

여기서 버그가 있다면, 인터페이스가 그래프 선택을 막았어야 하는데 누군가가 그래프를 선택할 수 있게 된 것일 가능성이 큽니다. 누군가가 설정 코드를 변경하여 이를 허용했습니까? 그럼에도 불구하고 “마법사(wizard)” 단계 이후에 초기 마크다운을 "해킹"하여 속성을 변경하는 것은 항상 가능했습니다(좋은 방법은 아닙니다).

저는 얼마 전 적절한 그래프인 Sankey 다이어그램을 제안한 적이 있었는데, 작동은 했으나 Discourse가 종속 라이브러리(의존성 라이브러리)를 추가하기 때문에 병합을 거절했습니다. 이는 합리적인 결정입니다.

CDCK이 Sankey를 통합하는 것에 대한 입장을 바꾼다면, 이를 최신 코드로 복원하고 PR을 준비하도록 누군가가 저에게 후원을 해주는 것을 환영합니다.

플러그인의 제 포크에서는 Ranked Choice에 대해 Sankey 다이어그램을 표시합니다. 아무도 유지보수를 지원하지 않기 때문에 매우 오래되었고 유지보수가 필요할 가능성이 높습니다:

Sankey에 대한 대표적 변경 사항 목록은 다음과 같습니다:

원하는 대로 처리하셔도 됩니다.

본인 말이지만 꽤 멋집니다.

파이 차트보다는 확실히 낫습니다!! :sweat_smile:

다음과 같은 기능 요청과 함께 #contribute:feature로 이동하는 것을 권장합니다:

  • Ranked Choice에 적합한 시각화 추가.
1개의 좋아요