Диаграммы фасетов Altair сохраняют отдельное изображение

#python #image #facet #altair

#python #изображение #фасет #altair

Вопрос:

Как разделить диаграмму фасетов Altair .facet на отдельные изображения с возможностью сохранения каждого из них.

можно ли сохранять отдельные изображения при использовании .facet?

приведен базовый пример диаграммы фасетов с возможностью сохранения изображения для всей группы. введите описание изображения здесь

(Скриншот из https://altair-viz.github.io/user_guide/compound_charts.html#faceted-charts )

Ответ №1:

Вы можете сохранять только полные диаграммы; нет механизма для индивидуального сохранения подпанелей одной диаграммы.

В качестве обходного пути вы можете воссоздать эти подпанели в виде отдельных диаграмм. Вот один из возможных подходов с использованием условной непрозрачности:

 import altair as alt
from vega_datasets import data
iris = data.iris()

chart = alt.Chart(iris).mark_point().encode(
    x='petalLength:Q',
    y='petalWidth:Q',
    color='species:N'
).properties(
    width=160,
    height=160
)

for species in ['setosa', 'versicolor', 'virginica']:
    chart.encode(
        opacity=alt.condition(
            f"datum.species == '{species}'", alt.value(1), alt.value(0)
        )
    ).display()
 

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Комментарии:

1. спасибо за ответ, мой пример, возможно, был слишком простым. Я создал контрольные диаграммы с верхними, нижними пределами и правилами для сигналов. т.е. пробег 7 ниже среднего. Затем я собрал все это вместе в шаблон chart и .facet, чтобы дублировать диаграмму для каждого отдела. Будет ли этот подход работать для разбиения диаграмм обратно?

2. Да, некоторая адаптация этого подхода должна подходить даже для более сложных диаграмм.