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

4
我正在尝试在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)

enter image description here

在保持每个分组之间的空白的同时,是否有可能保留水平网格线?


注:该问题涉及表格样式布局方面的技术内容。
1个回答

6
您可以结合调整比例尺域和外观间距来实现类似以下示例的效果:
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
)

enter image description here


可以,谢谢!我得调整标签居中,但已经足够好了。 - C. Braun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接