【发布时间】:2020-04-01 02:09:00
【问题描述】:
我正在尝试向我的等值线图添加一个滑块。
滑块基于 2006 年至 2012 年的“年”
我的数据是这样的:
可以从这里下载:
sample_data.csv
当我绘制县级等值线时,它正在使用 transform_lookup 对县进行内部连接 w.r.t fips 代码
这是我的代码:
slider = alt.binding_range(min=2006, max=2012, step=1)
select_year = alt.selection_single(name="year", fields=['year'],
bind=slider, init={'year': 2006})
alt.Chart(us_counties).mark_geoshape(
stroke='black',
strokeWidth=0.05
).project(
type='albersUsa'
).transform_lookup(
lookup='id',
from_=alt.LookupData(fdf, 'fips', ['Pill_per_pop','year'])
).transform_calculate(
Pill_per_pop='isValid(datum.Pill_per_pop) ? datum.Pill_per_pop : -1'
).encode(
color = alt.condition(
'datum.Pill_per_pop > 0',
alt.Color('Pill_per_pop:Q', scale=Scale(scheme='blues')),
alt.value('#dbe9f6')
)).add_selection(
select_year
).properties(
width=700,
height=400
).transform_filter(
select_year
)
这段代码给了我一个带有滑块的等值线图,但这些图是错误的。
我觉得它是第一次出现 fips 代码,而不是根据年份进行过滤。
我觉得这是因为将县 ID 映射到 fips 代码的 transform_lookup 方法。
这是输出:
【问题讨论】:
标签: python-3.x vega altair vega-lite