Altair 交互式绘图在触摸屏设备上变为静态
Altair interactive plots become static on touch screen devices
我制作了一个 Altair 交互图,其中包含几个带交叉过滤的子图,并将其保存为 html 文件。
在计算机浏览器上打开时,一切正常。但是在我的 phone 和平板电脑上,情节变成静态的(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
该问题提供了一些与通过触摸屏进行交互相关的解决方法的建议,但目前还没有任何完整的解决方案可以解决您的问题。
我制作了一个 Altair 交互图,其中包含几个带交叉过滤的子图,并将其保存为 html 文件。 在计算机浏览器上打开时,一切正常。但是在我的 phone 和平板电脑上,情节变成静态的(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
该问题提供了一些与通过触摸屏进行交互相关的解决方法的建议,但目前还没有任何完整的解决方案可以解决您的问题。