Сгруппированная столбчатая диаграмма / столбчатая диаграмма с Chartkick на Ruby on Rails - PullRequest
0 голосов
/ 25 января 2019

У меня есть два набора данных, содержащих данные, автоматически собранные ИИ, и еще один набор данных, собранный человеком вручную. В настоящее время я отображаю их в двух отдельных столбцовых диаграммах, используя Chartkick для Rails :

enter image description here

enter image description here

Как показано выше, данные AI отображаются в виде столбчатой ​​диаграммы с накоплением, которая показывает разбивку подтвержденных, отклоненных и непроверенных данных, поскольку мы по-прежнему проводим проверки подтверждения, чтобы увидеть точность нашего AI, пока отображаются данные, управляемые человеком. следовательно, нет необходимости использовать столбчатую диаграмму с накоплением.

Теперь я хочу добиться того, чтобы данные ИИ и данные, управляемые человеком, отображались бок о бок (сгруппированы), сохраняя при этом свойство данных AI в стеке. Так должно выглядеть так:

enter image description here

Код, который у меня сейчас есть для двух отдельных диаграмм:

controller

# Data for Stacked Column Chart
@ai_operated_data = [
  {
     name: "Confirmed",
     data: PotentialViolator.where(confirmation_status: 1).group_by_week(:capture_time).count
  },
  {
     name: "Rejected",
     data: PotentialViolator.where(confirmation_status: 0).group_by_week(:capture_time).count
  },
  {
     name: "Unverified",
     data: PotentialViolator.where(confirmation_status: -1).group_by_week(:capture_time).count
  }
]

# Data for Single Column Chart
@human_operated_data = [
  {
     name: "Human Operated Data",
     data: ManuallyCaughtViolator.group_by_week(:capture_time).count
  }
]

view

<div class="ui container">
    <h1>Performance Analytics</h1>
    <div class="ui divider"></div>
      <%= column_chart @ai_operated_data, stacked: true %>
      <%= column_chart @human_operated_data %>
</div>

1 Ответ

0 голосов
/ 25 января 2019

Я смог найти пример из Chartkick.js examples и обнаружил, что есть только опция stack, которую можно передать в качестве параметра, чтобы указать, будет ли серия частьюстека или нет.

Мой окончательный код в моем view теперь выглядит следующим образом:

<%= column_chart [
        {
            name: "Confirmed AI-PWD Operated Data",
            data: PotentialViolator.where(confirmation_status: 1).group_by_week(:capture_time).count,
            stack: "stack 1"           
        },
        {
            name: "Rejected AI-PWD Operated Data",
            data: PotentialViolator.where(confirmation_status: 0).group_by_week(:capture_time).count,
            stack: "stack 1"                
        },
        {
            name: "Unverified AI-PWD  Operated Data",
            data: PotentialViolator.where(confirmation_status: -1).group_by_week(:capture_time).count,
            stack: "stack 1"                
        },
        {
            name: "PWD-Operated Data",
            data: ManuallyCaughtViolator.group_by_week(:capture_time).count,
            stack: "stack 2"
        }
    ], stacked: true
%>

Таким образом, он создает этот график:

enter image description here

...