elasticsearch Vega lite热图“;“转变”;isn';不正常工作,elasticsearch,kibana,heatmap,vega,vega-lite,elasticsearch,Kibana,Heatmap,Vega,Vega Lite" /> elasticsearch Vega lite热图“;“转变”;isn';不正常工作,elasticsearch,kibana,heatmap,vega,vega-lite,elasticsearch,Kibana,Heatmap,Vega,Vega Lite" />

elasticsearch Vega lite热图“;“转变”;isn';不正常工作

elasticsearch Vega lite热图“;“转变”;isn';不正常工作,elasticsearch,kibana,heatmap,vega,vega-lite,elasticsearch,Kibana,Heatmap,Vega,Vega Lite,1) 有X坐标和Y坐标。有一个Z值。Z需要计算平均值 "data": { "values": [ {"x": 0, "y": 0, "z": 0}, {"x": 1, "y": 0, "z": 1}, {"x": 2, "y": 0, "z": 5}, {"x": 2, "y": 0, "z": 10}, {"x": 4, "y": 0, "z": 16}, {"x": 0, "y": 1, "z": 1}, {"x": 1, "y": 1, "z": 2}, {

1) 有X坐标和Y坐标。有一个Z值。Z需要计算平均值

"data": {
"values": [
  {"x": 0, "y": 0, "z": 0},
  {"x": 1, "y": 0, "z": 1},
  {"x": 2, "y": 0, "z": 5},
  {"x": 2, "y": 0, "z": 10},
  {"x": 4, "y": 0, "z": 16},
  {"x": 0, "y": 1, "z": 1},
  {"x": 1, "y": 1, "z": 2},
  {"x": 2, "y": 1, "z": 5},
  {"x": 3, "y": 1, "z": 10},
  {"x": 5, "y": 1, "z": 26}
]},
如果数据:

"encoding": {
"x": {"field": "x", "type": "ordinal", "title": "X"},
"y": {"field": "y", "type": "ordinal", "title": "Y"} },
那么平均值是对的:

如果我将“transform”与“groupby”一起使用:

那么AVG这不是真的:


转换正按照您的指示执行:

{"window": [{"op": "count", "field": "x", "as": "x2"}], "groupby": ["y"]}
它按
y
对数据进行分组。示意图如下所示:

y=0: x: [0,  1,  2,  2,  4]
     z: [0,  1,  5, 10, 16]

y=1: x: [0,  1,  2,  3, 5]
     z: [1,  2,  5, 10, 26]
然后它执行滑动窗口并将计数分配给
x2

y=0: x:  [0,  1,  2,  2,  4]
     z:  [0,  1,  5, 10, 16]
     x2: [1,  2,  3,  4,  5]

y=1: x:  [0,  1,  2,  3,  5]
     z:  [1,  2,  5, 10, 26]
     x2: [1,  2,  3,  4,  5]
如您所见,当您创建
y
vs
x2
的绘图时,现在每个位置都有一个
z
值,这正确反映在上面显示的图表中

如果需要不同的行为,则应指定不同的变换

y=0: x:  [0,  1,  2,  2,  4]
     z:  [0,  1,  5, 10, 16]
     x2: [1,  2,  3,  4,  5]

y=1: x:  [0,  1,  2,  3,  5]
     z:  [1,  2,  5, 10, 26]
     x2: [1,  2,  3,  4,  5]