首页 > 解决方案 > 如何在 Cube.js 中使用 pivotConfig?

问题描述

我的resultSet样子是这样的:

0: Object { "Error.type": "A", "Error.criticity": "ORANGE", "Error.count": 10 }
​​
1: Object { "Error.type": "B", "Error.criticity": "ORANGE", "Error.count": 8 }
​​
2: Object { "Error.type": "B", "Error.criticity": "GREEN", "Error.count": 6 }
​​
3: Object { "Error.type": "C", "Error.criticity": "ORANGE", "Error.count": 5 }
​​
4: Object { "Error.type": "C", "Error.criticity": "GREEN", "Error.count": 1 }
​​
5: Object { "Error.type": "A", "Error.criticity": "GREEN", "Error.count": 1 }
​​

我想转动它来得到这个:

0: Object { "Error.type": "A", "ORANGE": 10, "GREEN": 1}
​
1: Object { "Error.type": "B", "ORANGE": 8, "GREEN": 6 }
​
2: Object { "Error.type": "C", "ORANGE": 5, "GREEN": 1}

我可以使用tablePivot来执行此操作吗?如果是,如何设置pivotConfig

最终目标是将此格式化resultSet带有 Recharts 的堆叠条形图


我努力了:

resultSet.tablePivot({
                x: ['Error.type'],
                y: ['Error.criticity', 'Error.count'],
              })

返回

0: Object { "Error.type": "A", "Error.criticity": "ORANGE", "Error.count": undefined }
​
1: Object { "Error.type": "B", "Error.criticity": "ORANGE", "Error.count": undefined }
​
2: Object { "Error.type": "C", "Error.criticity": "ORANGE", "Error.count": 5 }

resultSet.tablePivot({
                x: ['Error.type'],
                y: ['Error.criticity', 'measures'],
              })

返回

0: Object { "Error.type": "A", "Error.criticity": "GREEN", "Error.count": 1 }
​
1: Object { "Error.type": "B", "Error.criticity": "GREEN", "Error.count": 6 }
​
2: Object { "Error.type": "C", "Error.criticity": "GREEN", "Error.count": 1 }

在这两种情况下,我都会丢失一些信息。

标签: javascriptrechartscube.js

解决方案


我相信你需要pivotConfig这样的:

resultSet.tablePivot({
  x: [ 'Error.type' ],
  y: [ 'Error.criticity', 'measures' ]
})

旋转后的结果将如下所示,这几乎是您所期望的,对吧?

[
  {Error.type: "A", ORANGE,Error.count: "10", GREEN,Error.count: "1"},
  {Error.type: "B", ORANGE,Error.count: "8", GREEN,Error.count: "6"},
  {Error.type: "C", ORANGE,Error.count: "5", GREEN,Error.count: "1"}
]

您可以pivotConfig在 Cube.js文档中了解更多信息。


推荐阅读