Пользовательские средства отображения
Средство отображения (renderer), представленное в соответствующем разделе, — функция, принимающая спецификацию Vega-Lite или Vega как словарь Python dict и возвращающая словарь в формате MIME Bundle Jupyter. Этот словарь возвращается методом диаграммы _repr_mimebundle_.
Ключи MIME Bundle — MIME-типы, например image/png, а значения — данные соответствующего типа: текст, двоичные данные в кодировке base64 или JSON. Стандартное средство html возвращает HTML-представление для разных платформ с MIME-типом "text/html". Схематично это выглядит так:
def default_renderer(spec):
bundle = {'text/html': generate_html(spec)}
metadata = {}
return bundle, metadata
Если нужно реализовать собственную логику отображения без использования системы вывода интерфейса, функция может вернуть пустой словарь MIME Bundle:
def empty_bundle_renderer(spec):
# Custom display logic that uses the spec
...
# Return empty MIME bundle
return {}
Для простого примера добавим средство plaintext, которое выводит описание диаграммы обычным текстом:
def plaintext_mimetype(spec):
return {'text/plain': "description: " + spec.get('description', 'none')}
alt.renderers.register('plaintext', plaintext_mimetype)
Реестр alt.renderers позволяет определять и включать новые средства отображения. Теперь можно включить этот MIME-тип, и при выводе диаграммы будет показано её описание:
alt.renderers.enable('plaintext')
alt.Chart('data.txt').mark_point().encode(
x='x:Q',
y='y:Q'
).properties(
description='This is a simple chart'
)
description: This is a simple chart
Пример прост, но демонстрирует гибкость подхода. Если интерфейс использует _repr_mimebundle_ для получения MIME-представления объекта Python, можно определить функцию, которая любым способом обработает содержимое диаграммы перед возвратом нужного MIME-типа.