首页 > 解决方案 > jupyter上的folium空白等值线图,可能的JSON格式问题

问题描述

我一直在积极尝试找出为什么在尝试在 folium 上生成等值线图时在我的 Jupyter 笔记本上得到一张空白地图。这也是我的第一篇文章,因为我对编程还很陌生。

通过搜索在线资源,最常见的问题是不正确的 key_on 用法,但我不认为是这种情况,它可能是 JSON 格式与 folium(epsg=4326)不正确。

https://raw.githubusercontent.com/CyperPunk001/Immigration-to-CA-from-RSA/master/canada_provinces.geojson 这是我用于笔记本的 github 存储库中的 JSON 文件,我不确定这是什么格式是?

加拿大 COVID 19 案例这是我在笔记本上用于 folium 的当前数据框。

choropleth 地图的叶代码这是我用来生成活动 COVID 19 病例与省/地区的 choropleth 地图的当前叶代码。问题是我每次都会得到一张空白地图。

到目前为止我已经尝试过:

  1. 导入 Json 并将我的数据框“prname”列名替换为实际的 Json feature.properties.name 省/地区名称。这并没有解决我的问题。

  2. 将“prname”重命名为“name”。这并没有解决我的问题。

  3. 检查“name”、“numactive”列的 dtype 是否是正确的类型,这检查出来了,这不是他的问题吗?数据框的dtypes

  4. 这让我看看我导入的 JSON 文件的格式是否与 folium 不兼容,所以我尝试导入 geopandas,或者更确切地说是安装,但可惜我也经常遇到导入错误。我已经尝试了所有代码行,但没有运气。geopandas conda 安装

当前 folium 版本 0.11.0

任何帮助将不胜感激。

标签: jsonpandasjupyter-notebookfoliumchoropleth

解决方案


好问题。使用 R 和传单库完成此图。

.geojson 文件没有任何问题。我将您的 .geojson 数据复制并粘贴到记事本文本编辑器中,然后使用 .geojson 扩展名保存它。文件被读取并且文件被绘制没有问题(未显示)。

使用这个 .geojson 文件,我从文件的 @data 槽中名为“name”的变量创建了标签。我还从 @data 插槽中的 X_2012_membership 值创建了填充颜色。

我使用 Jupyter Lab 作为带有 R 内核的 IDE。代码如下:

获取数据,探索数据:

dg <- rgdal::readOGR("C:/python/R_files/test/test.geojson")
# str(dg, max.level = 2)
head(dg@data,2)
head(dg@data$name,2)

创建标签和填充颜色:

labs <- dg@data$name
fill_col <- colorFactor(topo.colors(5), unique(dg@data$X_2012_membership ))

绘制数据:

leaflet(dg) %>%
  addPolygons(
    fillColor = ~factpal(dg@data$X_2012_membership), 
    stroke = TRUE, 
    color = 'White', 
    weight = 1.5, 
    label = labs,
    labelOptions = labelOptions( noHide = T, 
      style = list("font-weight" = "normal", padding = "2px 2px"), 
      textsize = "7px", 
      direction = "auto"
    )
    )

链接处的情节: 加拿大


推荐阅读