У меня есть GeoDataFrame, который я строю как mark_geoshape-map (map_). Цвет и всплывающая подсказка основаны на заданном столбце c ('Pkw-Dichte'). Пока все работает нормально.
Затем я добавил еще одну диаграмму (легенду), которая позволяет фильтровать карту по состоянию ('bland'). Кажется, все работает, но теперь подсказка карты отключена. Это ошибка или я что-то здесь не так делаю?
Возможно, эта проблема связана не только с mark_geoshape, так как я столкнулся с такой же ошибкой в сочетании с подсказками mark_boxplot. Я думаю, что-то связано с выбором.
bland_selection = alt.selection_multi(fields=['bland'])
map_ = alt.Chart(source).mark_geoshape(
).encode(
tooltip=['Pkw-Dichte'],
color='Pkw-Dichte'
).properties(
height=700,
width=500
).transform_filter(
bland_selection
)
legend = alt.Chart(source).mark_rect(
).encode(
y=alt.Y('bland:N', axis=alt.Axis(title='State', orient='right')),
color=alt.condition(bland_selection,
alt.value('gray'),
alt.value('lightgray')),
tooltip=['bland:N'],
).add_selection(
bland_selection
)
map_ | legend
РЕДАКТИРОВАТЬ:
Вот воспроизводимый пример, включающий решение, добавив:
.add_selection(
bland_selection
)
... на карту_карты.
Пример не совсем чистый, так как Я не выяснил, как сделать выборку, но она показывает смысл и решение проблемы:
import altair as alt
from vega_datasets import data
counties = alt.topo_feature(data.us_10m.url, 'counties')
source = data.unemployment.url
bland_selection = alt.selection_multi(fields=['id'])
map_=alt.Chart(counties).mark_geoshape().encode(
color='rate:Q',
tooltip=['rate:Q']
).transform_lookup(
lookup='id',
from_=alt.LookupData(source, 'id', ['rate'])
).project(
type='albersUsa'
).properties(
width=500,
height=300
).transform_filter(
bland_selection
).add_selection(
bland_selection
)
chart=alt.Chart(counties).mark_rect().encode(
y= alt.Y("id:O", bin=True),
color=alt.condition(bland_selection,
alt.value('gray'),
alt.value('lightgray')),
tooltip=['rate:Q']
).transform_lookup(
lookup='id',
from_=alt.LookupData(source, 'id', ['rate'])
).add_selection(
bland_selection
)
map_ | chart