C3js 图表 - JSON 组数据

C3js Chart - JSON Group Data

我在配置C3Chartjs时遇到问题,希望有人能帮助我。

这里是我的JSON(数据来自用户输入):

  obc: [
    { takt: 90, oee: 80, processId: 'Operation 1', processName: 'Cortar', lowRepCycle: 65 },
    { takt: 90, oee: 80, processId: 'Operation 1', processName: 'Dobrar', lowRepCycle: 35 },
    { takt: 90, oee: 80, processId: 'Operation 2', processName: 'Dobrar', lowRepCycle: 65 },
    { takt: 90, oee: 80, processId: 'Operation 2', processName: 'Dobrar', lowRepCycle: 35 }
  ]

这是我的 C3 配置:

  c3.generate({
    bindto: '#chart',
    data: {
      json: this.obc,
      keys: {
        value: ['lowRepCycle', 'takt', 'oee']
      },
      type: 'bar',
      types: {
        takt: 'line',
        oee: 'line'
      },
      groups: [
        ['processId']
      ]
    }
  })

这是这段代码的结果:

Actual Result

问题是需要操作组中的数据,像这样:

The Result I expect


如果有人喜欢在 "production" 中查看应用程序,您可以访问:

//jsfiddle.net/theuzz1/3pa07ah8/

马修斯-lean.herokuapp.com/#/obc

只需单击添加运算符并查看图表

这行不通,因为您无法对值进行分组。您只能对列进行分组,例如'takt' 和 'oee',然后两者将叠加而不是单独显示。

要获得想要的结果,您必须操纵您的 json。每个条目都是具有一定数量任务的操作。然后你就可以对任务进行分组了。

看起来像这样 (fiddle):

 var obc = [
    { takt: 90, oee: 80, processId: 'Operation_1', processName: 'Cortar', task_1: 65, task_2: 35 },
    { takt: 90, oee: 80, processId: 'Operation_2', processName: 'Dobrar', task_1: 65, task_2: 35 }
  ]

var chart =  c3.generate({
    data: {
      json: obc,
      keys: {
        value: ['task_1','task_2','takt', 'oee']
      },
      type: 'bar',
      types: {
        takt: 'line',
        oee: 'line'
      },
      groups: [
        ['task_1', 'task_2']
      ]
    }
  })