首页 > 解决方案 > Vega-lite 图表,用于具有动态 timeUnit 分箱的可缩放时间线直方图

问题描述

Vega-Lite 是否支持使用动态 timeUnit 分箱创建可缩放的时间线直方图?

输入数据:事件数组,每个事件都有时间字段,跨越短时间或长时间范围,取决于数据

所需图表:具有静态分箱数的直方图,在当前选定的时间范围内动态分箱(缩小时大 timeUnit,放大时小 timeUnit)

附加的另一个库的示例截屏显示缩放,此外时间线应作为另一个图表的选择。请注意,分箱时间单位随当前缩放而变化。

视频

标签: vegavega-lite

解决方案


看看这个例子: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 确实支持自定义格式,并且今天在文档中修复了一个错误;但是,我仍然遇到问题,如此处所示。如果我无法弄清楚,我会提交一个问题,如果我找到解决方案,请告诉您。


推荐阅读