Держите альтаир ползунки с графиками при объединении - PullRequest
1 голос
/ 05 февраля 2020

При объединении двух диаграмм с собственными ползунками ползунки сгруппированы в конце. Есть ли способ, чтобы ползунки оставались на каждом графике?

Вот пример, модифицированный из документов

import altair.vegalite.v3 as alt
import pandas as pd
import numpy as np

rand = np.random.RandomState(42)

df = pd.DataFrame({"xval": range(100), "yval": rand.randn(100).cumsum()})

slider1 = alt.binding_range(min=0, max=100, step=1, name="cutoff1:")
selector1 = alt.selection_single(
    name="SelectorName1", fields=["cutoff1"], bind=slider1, init={"cutoff1": 50}
)

slider2 = alt.binding_range(min=0, max=100, step=1, name="cutoff2:")
selector2 = alt.selection_single(
    name="SelectorName2", fields=["cutoff2"], bind=slider2, init={"cutoff2": 50}
)

ch_base = (
    alt.Chart(df)
    .mark_point()
    .encode(
        x="xval",
        y="yval",
        color=alt.condition(
            alt.datum.xval < selector1.cutoff1, alt.value("red"), alt.value("blue")
        ),
    )
)

ch1 = ch_base.add_selection(selector1)

ch2 = ch_base.encode(
    color=alt.condition(
        alt.datum.xval < selector2.cutoff2, alt.value("red"), alt.value("blue")
    )
).add_selection(selector2)


ch1 & ch2

Как видно на рисунке, ползунки по умолчанию сгруппированы следующим друг другу: enter image description here

1 Ответ

1 голос
/ 05 февраля 2020

Ползунки всегда отображаются внизу полного графика. В настоящее время изменить это невозможно.

Если вы хотите, чтобы эта функция существовала в будущем, я бы предложил отправить запрос на в Vega-Lite.

В качестве обходного пути вы можете создать две диаграммы и встроить их в один документ, используя vega-embed , хотя при этом не просто передавать сигналы между двумя диаграммами.

...