在 altair 可视化中删除标记之间的 space

Removing space between marks in altair visualization

我有一个可视化,我正在尝试使用 altair 增加标记大小并让它们接触(减少标记之间的 space)。有没有办法不使用 'size=' 就可以做到这一点?我想让它适应一个函数而不是硬编码大小,但让它依赖于给定的数据。

这是我目前的代码:

alt.Chart(df).mark_square().encode(
x=alt.X('p1:N'),
y=alt.Y('p2:N'),
color=alt.Color('weight:O', legend=alt.Legend(type='symbol'), scale=alt.Scale(scheme='blues'))
               
).properties(
    height=500,
    width=500
 )

我当前的输出:

我正在努力实现的预期输出:

sizeAltair 的属性,然后用于操纵 标记 大小,因此它适用于 point/circle/square,请检查 altair-viz.github.io/user_guide/marks.html?highlight=mark_square。为了展示如何通过函数使用它,我这样做了:

def plot_mark_squares(df, bandsize=0, size=30, width=500, height=500):  
    alt.Chart(df).mark_square().encode(
    x=alt.X('p1:N'),
    y=alt.Y('p2:N'),
    color=alt.Color('weight:O', legend=alt.Legend(type='symbol'), scale=alt.Scale(scheme='blues'))
    ).properties(
           height=500,
           width=500,
           bandsize=bandsize,
           size=size
    )

plot_mark_squares(df, 0.1, 50)

如果您使用 mark_rect() 而不是 mark_square() 和名义或序数编码,每个标记的大小将自动调整以填充 space。