我有一个Vega图表,需要动态计算x轴域。阅读文档,我发现我可能有两个选择:
我的数据转换聚合最小最大实现如下:
{
'name': 'minMaxSales',
'source': 'monthlySales',
'transform': { 'type': 'aggregate', 'fields': ['datum.sales_total', 'datum.sales_total'], 'ops': ['min', 'max'], 'as': ['minSales', 'maxSales'] }
}
X比例尺定义:
'scales': [
{
'name': 'x',
'type': 'linear',
'round': false,
'nice': false,
'zero': true,
'domain': {
'data': 'minMaxSales'
},
'range': 'width'
}
]
我的数据转换范围解决方案代码如下:
{
'name': 'minMaxSales',
'source': 'monthlySales',
'transform': { 'type': 'extent', 'field': 'datum.sales_total', 'signal': 'extent' }
}
与X比例尺定义相同的代码。
在两种情况下,我都会遇到以下错误:
vue.runtime.esm.js:1832 TypeError: data.transform.forEach is not a function
at parseData (data.js:11)
......
答案 0 :(得分:0)
transform
应该是对象数组(see here)。您需要做的就是在[]
周围加上方括号({ 'type': 'aggregate', 'fields': ['datum.sales_total', 'datum.sales_total'], 'ops': ['min', 'max'], 'as': ['minSales', 'maxSales'] }
),它应该可以正常工作。