使 Vega-Lite 条形标记相邻

Making Vega-Lite bar marks adjacent

我正在 Vega-Lite 中绘制条形图(使用 Altair 生成)。使用 Vega-View API,我编写了一些代码,用户可以在其中 select 条形图更改这些条形图的颜色(以及在应用程序的其他地方做一些其他事情;细节不是这个问题超级重要)。

我的问题是这样的。使用 5 的默认 continuousBandSize,当缩小时,条形看起来 "overlap" 彼此水平。 Here's a screenshot of this problem. 这个问题可以通过将 continuousBandSize 设置为 1 来解决,但问题是 - 当您放大图表时 - 条形变得非常细并且用户很难 select . (此外,由于我默认将条形着色为灰色,因此很难将它们与可视化背后的网格区分开来;如果可以的话,我宁愿保留网格。)Here's a screenshot of this problem.

是否可以使 Vega-Lite 中的条形标记在任何缩放级别都相邻? 或者这不可行吗?

之前对这个问题的研究

Vega-Lite GitHub 页面 here 的一个问题中提到了条形太细的问题,但该问题似乎解决了另一个问题(条形超出可视化)。

我研究过使用 paddingpaddingInnerpaddingOuter(如 the Vega-Lite documentation and in the answer to ), with no success. The problem of increasing sizes causing bars to overlap is also brought up in an (unanswered) comment on 中所述。

示例 Vega-Lite 规范

Vega 编辑器中提供了一个示例规范,显示了我正在处理的绘图的一个子集(continuousBandSize 设置为 1 以显示 "thin-bar" 问题)here(很抱歉 URL)。如上所述,如果将 continuousBandSize 设置为 1 时放大得太远,灰色条会变得非常细且难以看到。如果您将 continuousBandSize 设置为类似 2 或更高的值并缩小得太远,则条形开始相互重叠(这由蓝色条开始稍微 "covered" 证明右边的灰色条 -- 这在这里不是很明显,因为这只是完整图的一个子集,但是当有 ~500 个条时,问题就更清楚了。

谢谢!

在您的图表中,您将 x 刻度类型设置为定量,这导致条形非常细:

如果您将 x 刻度设置为有序,则条形会填充 space:

一般来说,条形图在处理非连续数据时表现更好。

我运行遇到了同样的问题。 FWIW,文档确实指定了这种行为,虽然我花了一段时间才找到它:effect of datatype on xaxis scales