繁体   English   中英

带散点图的Altair链接地图

[英]Altair linked map with scatter plot

我正在尝试创建一个类似于此处此处的示例的链接图。 我要在一侧绘制散点图,在另一侧绘制地理图。 散点图中的点将在地图上相应的地理位置上显示为点。 在散点图上选择了几个点后,我只想在地图上看到这些点,反之亦然。 但是,无法完成。

我认为问题是基础,或者这些图的x和y轴中使用的值。 散点图的基础仅使用值(数据框,已选择两个数字列),而地理地图具有经度和纬度(topojson文件,用于将点添加到地图上的纬度和经度列)。 您可以将数据集视为来自vegasets的数据集: data.airports()具有另外两个数字列。 和topojson作为data.us_10m.url

有没有办法在他们之间建立联系?

从“ 美国机场”示例图进行工作并添加伴随的散点图,您可以执行以下操作:

import altair as alt
from vega_datasets import data

airports = data.airports()
states = alt.topo_feature(data.us_10m.url, feature='states')
selection = alt.selection_interval()

# US states background
background = alt.Chart(states).mark_geoshape(
    fill='lightgray',
    stroke='white'
).properties(
    width=500,
    height=300
).project('albersUsa')

# airport positions on background
points = alt.Chart(airports).mark_circle(
    size=10,
).encode(
    longitude='longitude:Q',
    latitude='latitude:Q',
    tooltip=['name', 'city', 'state'],
    color=alt.condition(selection, alt.value('steelblue'), alt.value('lightgray'))
)

#lat/lon scatter
scatter = alt.Chart(airports).mark_point().encode(
    x='longitude:Q',
    y='latitude:Q',
    color=alt.condition(selection, alt.value('steelblue'), alt.value('lightgray'))   
).add_selection(
    selection
)

scatter | (background + points)

在此处输入图片说明

请注意,地理投影目前不支持区间选择,因此将无法在地图本身上选择点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM