Я сделал интерактивный график Altair, который содержит несколько подзаголовков с перекрестной фильтрацией, и сохранил его в виде html-файла. При открытии в компьютерных браузерах все работает нормально. Но на моем телефоне и планшете сюжет становится статичным (и Android Chrome, и Firefox). Есть ли способ заставить его работать на этих платформах?
Воспроизводимый код
import altair as alt
from vega_datasets import data
cars = data.cars()
interval = alt.selection_interval()
base = alt.Chart(cars).mark_point().encode(
y='Horsepower',
color=alt.condition(interval, 'Origin', alt.value('lightgray')),
tooltip='Name'
).add_selection(
interval
)
hist = alt.Chart(cars).mark_bar().encode(
x='count()',
y='Origin',
color='Origin'
).properties(
width=800,
height=80
).transform_filter(
interval
)
scatter = base.encode(x='Miles_per_Gallon') | base.encode(x='Acceleration')
chart = scatter & hist
chart.display(renderer='svg')
chart.save('chart.html', scale_factor=3)
<iframe src = "https://chart.tiiny.site/" style = "width: 100%; height: 1000px;">
</iframe>
Это открытая проблема в Vega-Lite, библиотеке, используемой для отображения карт Altair: https://github.com/vega/vega-lite/issues/4661.
В этой проблеме есть несколько предложений по обходным путям, связанным с взаимодействием через сенсорные экраны, но полного решения вашего вопроса пока нет.