保存周围没有白色 space 的 Altair 图表

Saving Altair charts without white space around them

我在我的学术论文中使用 Altair 图表。

会议论文有严格的页数限制。自然地,我想使用我决定为实际图表分配的所有 space,而不是它周围的白色 space。 Latex 排版框架会自动在图形周围添加白色 space,并警告作者不要篡改它,因此我不需要在图像中添加额外的白色 space。

目前,我的方法是每次生成要粘贴到我的论文中的图表时,我首先使用 KolourPaint 手动删除 png 图像周围的白色 space。当然,这很乏味 error-prone。

有没有办法将 Altair 配置为仅在图表周围生成最少量的白色 space?如果重要的话,垂直白色边框对我来说更重要。

Altair 图表另存为 png:

手动去除图表周围的白色后的图像 space:

(您可能需要下载两张图片并在图片查看器中打开它们才能更清楚地看到白色边框)

Altair图表周围的space由Vega's view.padding property控制,可以在渲染器中设置:

alt.renderers.set_embed_options(
    padding={"left": 0, "right": 0, "bottom": 0, "top": 0}
)

每边的默认填充为 5。

例如,使用fivethirtyeight主题来更好地显示padding,你可以创建这样的图表:

import altair as alt
alt.renderers.set_embed_options(
    theme="fivethirtyeight",
    padding={"left": 0, "right": 0, "bottom": 0, "top": 0}
)

# load a simple dataset as a pandas DataFrame
from vega_datasets import data
cars = data.cars()

alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
)