python - 在 Altair 中生成 "dodged"或 "side-by-side"条形图/柱形图?

标签 python altair

如果之前有人问过这个问题,我深表歉意,但我正在寻找一种使用 python 中的 Altair 库创建“躲避”条形图的方法(来自 ggplot2language)。

我知道 Altair 有 this example :

import altair as alt
from vega_datasets import data

source = data.barley()

alt.Chart(source).mark_bar().encode(
    x='year:O',
    y='sum(yield):Q',
    color='year:N',
    column='site:N'
)

这会产生这个图:

Altair Plot

但是,这有很多冗余的标签和信息。理想情况下,我想要一个图,其中成对的条形图用颜色编码年份(蓝色是 1931 年,橙色是 1932 年),然后是沿 x 轴运行的城市(序数变量)。

很难解释,但这里有一个如何从 seaborn 获取这样的图的示例(使用不同的数据;来源是 this SO question ):

Seaborn Plot

最佳答案

是的,您已经找到了在 Altair 中创建分组条形图的推荐方法。如果您想调整图表的最终外观,您可以执行诸如删除和重新排列标签和标题之类的操作;以下是您可以如何修改示例以使其更接近seaborn图表的方法:

import altair as alt
from vega_datasets import data

source = data.barley()

alt.Chart(source).mark_bar().encode(
    x=alt.X('year:O', axis=alt.Axis(title=None, labels=False, ticks=False)),
    y=alt.Y('sum(yield):Q', axis=alt.Axis(grid=False)),
    color='year:N',
    column=alt.Column('site:N', header=alt.Header(title=None, labelOrient='bottom'))
).configure_view(
    stroke='transparent'
)

enter image description here

关于python - 在 Altair 中生成 "dodged"或 "side-by-side"条形图/柱形图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58618197/

相关文章:

python - 带有本地 PIL 图像的 Altair 工具提示

python - 无论如何,在 Altair 中,是否可以弹出 map 的一部分或更改选择的颜色

python - 处理 Altair 分区统计图中的缺失值/空值

python - Pygame 游戏未启动

java - Selenium : How to stop geckodriver process impacting PC memory, 不调用 driver.quit()?

python - Sqlalchemy : InvalidRequestError: Object '<User at 0x3a970d0>' is already attached to session '2' (this is '3' )

python - 使用正则表达式从一个字符串中提取字符python

python - Matplotlib:如何从数组的列中绘制多条线,但给它们一个标签?

python - 使用 Altair 在单个 map 上绘制空间数据

python - Altair Map,是否可以添加 basemap ?