如何制作具有跨列一致网格的分组条形图?

C. *_*aun 4 python altair

我正在尝试在 Altair 中制作一个分组条形图,其中列不是那么明显(可能是通过删除它们之间的空间)。

此处问题中提出的解决方案依赖于几种折旧方法。此外,那里描述的所需视觉分组(这是我正在寻找的)已作为 vega-lite 问题关闭。这已经得到解决

有没有更新的方法来创建一个干净分组的条形图?

这是我到目前为止所拥有的:

import pandas as pd
import numpy as np
import altair as alt

vals = np.concatenate(((np.arange(10) ** 2) / 9, np.arange(10)))
df = pd.DataFrame({
    'cat': np.repeat(['a', 'b'], 10),
    'x': np.tile(np.arange(10), 2),
    'y': vals
})

alt.Chart(df).mark_bar(width=20).encode(
    x='cat',
    y='y',
    color='cat',
    column='x'
).configure_view(strokeWidth=0)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

是否可以在保持水平网格线的同时保持每组之间的空间?

jak*_*vdp 5

您可以将小平面间距与调整比例域结合起来执行以下操作:

import pandas as pd
import numpy as np
import altair as alt

vals = np.concatenate(((np.arange(10) ** 2) / 9, np.arange(10)))
df = pd.DataFrame({
    'cat': np.repeat(['a', 'b'], 10),
    'x': np.tile(np.arange(10), 2),
    'y': vals
})

alt.Chart(df).mark_bar(width=20).encode(
    x=alt.X('cat', scale=alt.Scale(domain=['', 'a', 'b'])),
    y='y',
    color='cat',
).facet(
    'x', spacing=0
).configure_view(
    strokeWidth=0
)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明