vega - Vega-lite 图表,用于具有动态 timeUnit 分箱的可缩放时间线直方图
问题描述
Vega-Lite 是否支持使用动态 timeUnit 分箱创建可缩放的时间线直方图?
输入数据:事件数组,每个事件都有时间字段,跨越短时间或长时间范围,取决于数据
所需图表:具有静态分箱数的直方图,在当前选定的时间范围内动态分箱(缩小时大 timeUnit,放大时小 timeUnit)
附加的另一个库的示例截屏显示缩放,此外时间线应作为另一个图表的选择。请注意,分箱时间单位随当前缩放而变化。
解决方案
看看这个例子:https ://codepen.io/epicyclist/pen/ZEWMzxb
它缺乏完美的分箱timeUnit
(我不知道这是否是一个硬性要求),但我会尝试通过 vega-embed 的补丁功能来实现它。
两个关键组件是:
selection: {
brush: {
type: 'interval',
encodings: ['x'],
bind: 'scales',
},
},
和:
bin: {
maxbins: 40,
extent: {
selection: 'brush',
},
},
我不确定如何获得更好的轴格式;如果format
未指定,则轴仅格式化为时间。
Vega-Lite 确实支持自定义格式,并且今天在文档中修复了一个错误;但是,我仍然遇到问题,如此处所示。如果我无法弄清楚,我会提交一个问题,如果我找到解决方案,请告诉您。
推荐阅读
- python - Kivy 无响应且无法更改文本框中的文本
- python - Numpy:在一个方程中找到所需的值,使误差最小化
- c# - 如何在非 UWP C# 项目中访问 Windows.Gaming.Input?
- python - 来自 Airflow 数据库挂钩的 SQLAlchemy 引擎
- powershell - 搜索正在使用的 AD 扩展属性
- javascript - angular 9 的 Quickblox webrtc 视频通话在 iPhone 11 中不起作用
- javascript - 构建我的反应应用程序时,纱线构建显示空白页面?
- python-3.x - from_addr = email.utils.getaddresses([from_addr])[0][1] ,使用 python 发送电子邮件时出错
- javascript - 错误:无法将 undefined 或 null 转换为对象
- spring-integration - 如何按规范订阅不同的频道?