elasticsearch - Vega-lite 热图“转换”无法正常工作
问题描述
1)有一个X - 坐标和Y - 坐标。有一个 Z 值。Z需要计算AVG。
"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"} },
然后 AVG 是对的:
如果我将“transform”与“groupby”一起使用:
"transform": [ {"window": [{"op": "count", "field": "x", "as": "x2"}], "groupby": ["y"]}],
"encoding": {
"x": {"field": "x2", "type": "ordinal", "title": "X"},
"y": {"field": "y", "type": "ordinal", "title": "Y"}
},
那么 AVG 不是真的: Vega Editor
解决方案
转换正在做你告诉它做的事情:
{"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
每个位置都有一个值,这正确地反映在上面显示的图表中。
如果您想要不同的行为,您应该指定不同的转换。
推荐阅读
- c# - webapi 的基于角色的身份验证
- python-3.x - 使用服务器端加密的 S3 上传(python SDK)
- android - 在 Oppo 手机上以编程方式发送短信
- visual-studio-code - 如何为 VSCode 在 zen 模式下启用行号?
- excel - 我在查询中对字符串变量使用什么格式
- android - 网络离线Android后使用WebRtc重新连接呼叫
- c# - 在 .NET 控制台应用程序中,如何获取用户键入命令的命令提示符的路径?
- android - 未找到 MaterialLocalizations - MyApp 小部件需要由 Localizations 小部件祖先提供的 MaterialLocalizations
- javascript - 通过按钮单击更改模态标题不会改变
- amazon-redshift - 在 LISTAAG 内分组