gpt4 book ai didi

vega-lite - vega-lite 中的数据布局、图层和图例

转载 作者:行者123 更新时间:2023-12-03 23:26:21 26 4
gpt4 key购买 nike

我有一个非常简单的情况,我相信我的解决方案太复杂了,很有可能我遗漏了一些东西。说我有 time 的措施,位置(x,y,z),角度(滚动,俯仰,偏航)和速度。我想要一个简单的可视化,就像我目前拥有的那样,速度图可以用作“画笔”来动态放大前两个图形。
enter image description here
我在 vega 编辑器中的情节的一个小例子 can be found here .
1. 我可以使用不同的数据布局吗?
现在,每个点都是一个对象

{
"pitch": -0.006149084584096612,
"roll": 0.0007914191778949736,
"speed": 4.747345444390669,
"time": 0.519741,
"x": -0.01731604791076788,
"y": 0.020068310429957575,
"yaw": 0.0038123065311157552,
"z": -0.016005977140476142
}
对于许多数据点,仅用于重复列名就需要大量内存。更好的方法是将数据以表格形式存在
{
"time": [t1, t2, t3, ...],
"x": [...],
...
}
但是 vega 的“行第一”表示不允许这样做。我已经在 Slack 上问过有人建议在哪里使用 FoldPivot ,但我不确定如何实现这一点。是否可以使用存储为数组的数据?我自己从 C++ 程序创建数据,我可以轻松地导出不同的表示。唯一的问题是我如何让 vega-lite 理解?
2. 图层和图例。
如果我有带有“指标列”的时间序列数据,我可以轻松地创建将多个图形组合在一起的图。不幸的是,我没有那个,我找到的唯一解决方案是使用图层。有了这个,我必须明确地为不同的图表设置颜色(而不是使用方案)并且我没有得到图例。
如果图层真的只能选择在这里组合,例如x,y,z 到一个“运动”图,我怎样才能得到这个图的图例,告诉我红色 -> x,绿色 -> y,和蓝色 -> z?

最佳答案

你的两个问题的答案都是"is"。
第一个问题的关键是将数据以密集格式传递并使用Flatten Transform扩展它。
第二个问题的关键是使用Fold Transform将多列转换为一个指标加一个值。
以下是单个图表 ( open in editor ) 的演示:

{
"data": {
"values": [
{
"time": [1, 2, 3, 4],
"x": [5, 4, 5, 2],
"y": [2, 3, 2, 4],
"z": [1, 2, 1, 0]
}
]
},
"transform": [
{"flatten": ["time", "x", "y", "z"]},
{"fold": ["x", "y", "z"], "as": ["column", "value"]}
],
"mark": "line",
"encoding": {
"x": {"field": "time", "type": "quantitative"},
"y": {"field": "value", "type": "quantitative"},
"color": {"field": "column", "type": "nominal"}
}
}
enter image description here

关于vega-lite - vega-lite 中的数据布局、图层和图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64899750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com