如何使用Altair实现柱状图X轴与Y轴双向滚动交互
代码修改方案
直接替换原有代码即可,修改后同时支持X、Y轴的缩放平移滚动:
import altair as alt import pandas as pd df = pd.read_csv('graph.csv') # 定义双轴绑定的缩放平移交互 zoom_pan = alt.selection_interval( bind='scales', encodings=['x', 'y'] ) alt.Chart(df).mark_bar().encode( x = alt.X('SWIPE_START_DATETIME:T'), x2 = alt.X2('SWIPE_END_DATETIME:T'), y = 'NO_OF_HOURS:Q', tooltip = ['SWIPE_START_DATETIME:T', 'SWIPE_END_DATETIME:T', 'NO_OF_HOURS:Q'] ).add_params(zoom_pan)
核心修改说明
- 给所有字段显式指定数据类型:
:T标记时间类型、:Q标记数值类型,避免Altair自动类型识别错误导致的交互失效 - 替换默认的
interactive()方法为显式定义的交互选择器,通过encodings=['x', 'y']强制指定交互同时作用于X、Y轴,两个轴都支持滚轮缩放、拖拽平移操作 - 如果你使用的是Altair 4.x及更早版本,运行时提示
add_params不存在,把最后一行add_params(zoom_pan)替换为add_selection(zoom_pan)即可
内容的提问来源于stack exchange,提问作者unanonymous56
相关产品推荐
相关产品推荐

