database - 如何根据其他列过滤值?
问题描述
如何在 vega-lite 中选择某些值和/或以其他列为条件的值?例如,下面我只想在“ c ”列中显示具有“ red ”的值。
{
"data": {
"values": [
{"a": "A", "b": 2, "c": "red"},
{"a": "A", "b": 7, "c": "red"},
{"a": "A", "b": 4, "c": "blue"},
{"a": "B", "b": 1, "c": "blue"},
{"a": "B", "b": 2, "c": "red"}
]
},
"mark": "bar",
"encoding": {
"x": {"field": "a", "type": "nominal"},
"y": {"aggregate": "average", "field": "b", "type": "quantitative"}
}
}
我之前尝试"mark": "bar",
根据这个 vega github 教程添加以下代码,并使用在线 vega 编辑器,但它不过滤列b。我想我也可以用它来过滤字符串。
"transform": {
"filter": "datum.b > 3"
},
关于多个过滤标准的后续问题。
解决方案
您可以使用过滤器转换来做到这一点:
{
"data": {
"values": [
{"a": "A", "b": 2, "c": "red"},
{"a": "A", "b": 7, "c": "red"},
{"a": "A", "b": 4, "c": "blue"},
{"a": "B", "b": 1, "c": "blue"},
{"a": "B", "b": 2, "c": "red"}
]
},
"transform": [{"filter": "datum.c == 'red'"}],
"mark": "bar",
"encoding": {
"x": {"field": "a", "type": "nominal"},
"y": {"aggregate": "average", "field": "b", "type": "quantitative"}
}
}
推荐阅读
- windows - 如何批量获取未识别的网络适配器名称
- gpu - 关于 docker、nvidia-docker、cudnn 和 tensorflow 的问题
- rust - 如何为特征提供 IntoIterator 的默认实现?
- c# - 在 MEF 中的泛型方法中转换类
- html - 我的浏览器中仍然显示隐藏的列,这是什么问题?
- vue.js - 如何将垂直“b-tabs”导航部分和内容部分的高度设置为相同(基于内容部分)
- function - 在 Go 中是否可以使用命名参数调用函数?
- label - 使用python在Gtk中的标签内垂直居中文本
- wordpress - 我们能否重做一个在 wordpress.org 上发布的插件,并为已在该站点上安装该插件的用户禁用更新
- batch-file - 使用 JQ 在 Windows shell 中通过子元素的内容过滤 JSON 的元素?