我有一张既有行又有列的刻面图.我想按最大值从左到右和从上到下对行和列进行排序(左上角是最大的).当我们的每一行和每一列都有数据时,这种方法工作得很好,但是如果缺少一些数据,那么这些值就会被推到错误的行或列中,如您在下面看到的.
这是个窃听器吗?
我设法通过用一个JavaScript函数推入假值来解决这个问题,但我只是想判断一下这里出了什么问题.将鼠标悬停在每个方框上,你会看到日本现在已经进入了欧洲.
{
"data": {"url": "data/cars.json"},
"mark": "bar",
"transform": [
{
"filter": "datum.Origin === 'Japan' || datum.Origin === 'Europe'"
},
{
"filter": "datum.Horsepower >= 110"
},
{
"joinaggregate": [{"op": "count", "field": "Name", "as": "CountOrigin"}],
"groupby": ["Origin"]
},
{
"calculate": "slice('000000' + format(datum.CountOrigin, '.0f'), -6) + '-' + datum.Origin",
"as": "OriginSort"
},
{
"joinaggregate": [
{"op": "count", "field": "Name", "as": "CountCylinders"}
],
"groupby": ["Cylinders"]
},
{
"calculate": "slice('000000' + format(datum.CountCylinders, '.0f'), -6) + '-' + format(datum.Cylinders, '.0f')",
"as": "CylindersSort"
}
],
"encoding": {
"y": {"aggregate": "count", "field": "Name", "type": "quantitative"},
"row": {
"field": "Origin",
"type": "nominal",
"sort": {"field": "OriginSort", "order": "descending"}
},
"column": {
"field": "Cylinders",
"type": "quantitative",
"sort": {"field": "CylindersSort", "order": "descending"}
},
"tooltip": [
{"field": "Name"},
{"field": "Origin"},
{"field": "OriginSort"},
{"field": "CylindersSort"}
],
"color": {"field": "Horsepower", "type": "ordinal"}
}
}