【发布时间】:2021-06-16 16:59:09
【问题描述】:
让我们从这个例子开始:
https://vega.github.io/vega/examples/heatmap/
这是底层数据的一瞥:
date pressure temperature wind
2010-01-01T01:00:00 1016.6 4 3.8
2010-01-01T02:00:00 1016.6 3.9 3.8
2010-01-01T03:00:00 1016.7 3.8 3.8
2010-01-01T04:00:00 1016.7 3.8 3.7
2010-01-01T05:00:00 1016.5 3.7 3.8
2010-01-01T06:00:00 1016.4 3.7 3.8
上图中,热图中每个单元格的颜色代表了数据表中单行中temperature的值。
假设我们要改变显示,让热图中每个单元格的颜色代表数据表中多行的平均值?
例如,假设我们要对 x 轴和 y 轴应用分箱。
对于 y 轴,我们将创建 3 个 bin:
- 6am-11am、12pm-6pm、7pm-12am
对于 x 轴,我们将创建 12 个 bin:
- 每个月一个垃圾箱
然后,热图将有 3 行和 12 列,并且热图中每个单元格的颜色将对应于相应 bin 中温度值的平均值。
问题:
-
你会如何用 vega 做这个?我们可以使用
transform来完成这项任务吗? -
我们是否应该先使用另一个 javascript 库进行分箱,然后将结果传递给 vega?
-
您能否分享一个代码 sn-p 或建议一个用于高效 2d 分箱的库(例如,对于具有连续 x、y 位置的一百万个项目)?
-
假设一些 bin 对应没有数据(数据表中的 0 行)。我们可以完全跳过绘制它们吗?或者用背景颜色给它们上色?
感谢您的帮助!
【问题讨论】:
-
你是在问如何在 Vega 或 Vega-Lite 中做到这一点?
-
杰克,我还在学习,所以任何关于如何使用 vega 或 vega-lite 来解决这个问题的技巧都会很棒!在这种情况下,您认为哪一种更合适?
标签: javascript data-visualization vega-lite vega