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 altair.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)