You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Bokeh绘制马德里选举交互地图无显示无报错求助

Bokeh选举地图无显示排查思路

坐标适配问题

  • 这是最常见的触发原因:Bokeh初始化figure时默认画布坐标范围是0~400区间,而马德里地理数据一般用WGS84经纬度坐标,数值集中在北纬40°、西经3.7°附近,完全落在默认可视区域外,看起来就像没有渲染内容。
  • 排查方法:打印你的GeoJSON中坐标的最大最小值,在初始化figure时手动指定x_range、y_range参数为坐标的数值区间即可。

颜色映射配置问题

  • 你代码中LinearColorMapper设置的数值范围是low=0, high=1,如果P.P.字段存储的是绝对得票数而非得票占比,所有数值都会超过上限1,所有区域会被渲染为同一种最深色,看起来像没有输出。
  • 排查方法:打印P.P.字段的最大最小值,把low和high参数修改为和字段数值范围匹配的值。

字段匹配问题

  • 检查GeoJSON的properties字段中是否存在你用到的P.P.、P.S.O.E.、Votos Totales、Municipio字段,注意大小写、特殊字符、空格是否完全匹配,字段不匹配会导致渲染时没有对应值,也可能出现空画布。

渲染环境问题

  • 如果在Jupyter环境运行,先确认Bokeh的notebook扩展已正确安装,output_notebook()执行正常。可以临时把output_notebook()替换为output_file("madrid_elections.html"),运行后打开本地生成的HTML文件验证是否能显示,排除Jupyter本身的渲染异常。

数据转换问题

  • 虽然你确认了GeoJSON结构一致,还是建议打印wi_geojson.geojson的前1000个字符,确认geometry字段是标准的Polygon/MultiPolygon结构,没有出现坐标字段为空、几何类型错误的问题。
简化实现方案

如果需要快速验证数据效果,可以用GeoPandas自带的explore()方法生成基于Leaflet的交互地图,不需要手动处理坐标映射、参数配置,代码更简洁不易出错。如果坚持用Bokeh,也可以搭配hvplot库,GeoDataFrame直接调用.hvplot(geo=True)即可自动适配坐标、加载底图,降低手写代码的出错概率。


内容的提问来源于stack exchange,提问作者Ber Tsacianegu del Tepuy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 11:54:03