Altair:geo_shapedoesn'tworkwithselection”
创始人
2024-08-07 14:02:00
0

如果您遇到'Altair: geo_shape doesn't work with selection”错误,这可能是因为Altair中的地理形状类型不支持选择操作。例如,您可能希望通过选择操作改变地图中区域的颜色,但您发现无法实现。

一种解决方法是使用更高级的地图库(例如Folium或Basemap),使用这些库可以在图形中添加交互性。

另一种解决方法是使用基于经纬度坐标的点选取操作来代替区域选择操作。例如,您可以在地图上放置一些固定的点,并使用这些点的坐标进行点选操作。以下是一个示例代码片段:

import altair as alt
from vega_datasets import data

source = data.world_110m.url

points = alt.Chart(source).mark_point().encode(
    longitude='longitude:Q',
    latitude='latitude:Q',
    color=alt.value('gray')
)

click = alt.selection_single(empty='none', fields=['country'])

choropleth = alt.Chart(source).mark_geoshape().encode(
    color=alt.condition(click, alt.Color('pop_est:Q', scale=alt.Scale(scheme='greens')), alt.value('lightgray')),
    tooltip=[alt.Tooltip('country:N'), alt.Tooltip('pop_est:Q',format=',')]
).transform_lookup(
    lookup='id',
    from_=alt.LookupData(source, 'id', ['country', 'pop_est'])
).add_selection(
    click
)

(choropleth + points).project(
    type='naturalEarth1'
).properties(width=650, height=400)

在上面的代码示例中,我们使用marks_point()函数将经纬度坐标转化为点,并使用marks_geoshape()函数将区域转化为具有颜色状态的图形。我们还添加了一个点击事件作为选定区域的条件,并使用transform_lookup()函数将相关数据进行合并。最后,我们将两个图形合并在一起,并使用properties()函数设置地图的大小。

相关内容

热门资讯

安卓换鸿蒙系统会卡吗,体验流畅... 最近手机圈可是热闹非凡呢!不少安卓用户都在议论纷纷,说鸿蒙系统要来啦!那么,安卓手机换上鸿蒙系统后,...
安卓系统拦截短信在哪,安卓系统... 你是不是也遇到了这种情况:手机里突然冒出了很多垃圾短信,烦不胜烦?别急,今天就来教你怎么在安卓系统里...
app安卓系统登录不了,解锁登... 最近是不是你也遇到了这样的烦恼:手机里那个心爱的APP,突然就登录不上了?别急,让我来帮你一步步排查...
安卓系统要维护多久,安卓系统维... 你有没有想过,你的安卓手机里那个陪伴你度过了无数日夜的安卓系统,它究竟要陪伴你多久呢?这个问题,估计...
windows官网系统多少钱 Windows官网系统价格一览:了解正版Windows的购买成本Windows 11官方价格解析微软...
安卓系统如何卸载app,轻松掌... 手机里的App越来越多,是不是感觉内存不够用了?别急,今天就来教你怎么轻松卸载安卓系统里的App,让...
怎么复制照片安卓系统,操作步骤... 亲爱的手机控们,是不是有时候想把自己的手机照片分享给朋友,或者备份到电脑上呢?别急,今天就来教你怎么...
安卓系统应用怎么重装,安卓应用... 手机里的安卓应用突然罢工了,是不是让你头疼不已?别急,今天就来手把手教你如何重装安卓系统应用,让你的...
iwatch怎么连接安卓系统,... 你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...
iphone系统与安卓系统更新... 最近是不是你也遇到了这样的烦恼?手机更新系统总是失败,急得你团团转。别急,今天就来给你揭秘为什么iP...