Plotly Cufflinks:英国邮政区热力图locations与locationmode参数参考查询
解决Plotly Cufflinks英国邮政区热力图的
locations和locationmode参数问题 嘿,我之前在做英国区域可视化的时候也碰到过这个困惑,给你几个实用的思路:
先搞清楚Plotly底层的参数逻辑:Cufflinks是封装Plotly的工具,所以
locationmode的可选值和Plotly原生的完全一致。官方文档里明确列出的locationmode选项包括:'ISO-3':国家/地区的三位ISO代码(只适合国家层面)'USA-states':美国州级地理标识(对你没用)'country names':国家全称(同样不适合城镇/邮政区)'geojson-id':这才是你需要的!当你使用自定义GeoJSON文件时,用这个选项来匹配GeoJSON里的id字段和你数据中的locations值。
为什么你搜不到直接的英国邮政区选项?:Plotly默认没有内置英国城镇或邮政区的地理数据集,所以必须自己导入对应的GeoJSON文件。比如英国国家统计局(ONS)提供了官方的邮政区GeoJSON数据,你可以下载后在代码中加载。
具体怎么设置?:
- 拿到英国邮政区的GeoJSON文件(比如包含每个邮政区代码和边界的文件)
- 在Cufflinks的
data字典里,除了基础参数,还要补充geo相关设置:import cufflinks as cf import json # 加载GeoJSON文件 with open('uk_postcodes.geojson') as f: uk_geojson = json.load(f) # 定义热力图数据 data = dict( type='choropleth', locations=你的邮政区代码列表, # 要和GeoJSON里的id字段完全匹配 locationmode='geojson-id', geojson=uk_geojson, colorscale='Viridis', text=你的城镇名称/描述列表, z=你的热力值列表, colorbar=dict(title='热力值') ) # 生成图 fig = cf.Figure(data=[data]) fig.update_geos(fitbounds="locations", visible=False) fig.show()
额外的参考渠道:
- 直接查看Cufflinks的GitHub仓库示例,里面有不少自定义GeoJSON的choropleth案例
- 搜索Plotly社区里的英国区域可视化帖子,很多人分享过现成的GeoJSON资源和代码片段
内容的提问来源于stack exchange,提问作者jason
相关产品推荐
相关产品推荐

