Альтаир связал карту с точечной диаграммой - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь создать связанный сюжет, похожий на примеры здесь и здесь .Я хочу точечный график с одной стороны и географическую карту с другой.Точки на диаграмме рассеяния будут отображаться в виде точек на соответствующих геолокациях на карте.После того, как я выберу несколько точек на графике рассеяния, я бы хотел видеть только эти точки на карте или наоборот.Однако, не мог сделать это.

Я думаю, что проблема в базе или значениях, используемых в их осях x и y этих графиков.База разбросанного графика использует только значения (информационный кадр, два выбранных числовых столбца), в то время как для географической карты заданы значения широты и долготы (файл топойсона, столбцы широты и долготы, используемые для добавления точек на карту).Вы можете думать о наборе данных как о наборе из овощей: data.airports() с еще двумя числовыми столбцами.И топойсон как data.us_10m.url

Есть ли способ установить связь между ними?

1 Ответ

2 голосов
/ 03 июня 2019

Исходя из примера графика Аэропорты США и добавляя сопутствующий точечный график, вы можете сделать что-то вроде этого:

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)

enter image description here

Обратите внимание, что выбор интервалов в настоящее время не поддерживается в географических проекциях, поэтому выбор точек на самой карте будет невозможен.

...