altair.theme.register#

altair.theme.register(name, *, enable)#

用于注册主题函数的装饰器。

参数
name

在注册表中分配的唯一名称。

enable

自动启用被包装的主题。

示例

注册并启用一个主题

import altair as alt
from altair import theme

@theme.register("param_font_size", enable=True)
def custom_theme() -> theme.ThemeConfig:
    sizes = 12, 14, 16, 18, 20
    return {
        "autosize": {"contains": "content", "resize": True},
        "background": "#F3F2F1",
        "config": {
            "axisX": {"labelFontSize": sizes[1], "titleFontSize": sizes[1]},
            "axisY": {"labelFontSize": sizes[1], "titleFontSize": sizes[1]},
            "font": "'Lato', 'Segoe UI', Tahoma, Verdana, sans-serif",
            "headerColumn": {"labelFontSize": sizes[1]},
            "headerFacet": {"labelFontSize": sizes[1]},
            "headerRow": {"labelFontSize": sizes[1]},
            "legend": {"labelFontSize": sizes[0], "titleFontSize": sizes[1]},
            "text": {"fontSize": sizes[0]},
            "title": {"fontSize": sizes[-1]},
        },
        "height": {"step": 28},
        "width": 350,
    }

然后我们可以在检查时看到 name 参数被显示

theme.active
"param_font_size"

在启用其他主题之前,所有图表将使用 custom_theme() 中设置的默认值

from vega_datasets import data

source = data.stocks()
lines = (
    alt.Chart(source, title=alt.Title("Stocks"))
    .mark_line()
    .encode(x="date:T", y="price:Q", color="symbol:N")
)
lines.interactive(bind_y=False)