jupyter 上的 folium blank choropleth 地图,可能 JSON 格式问题

folium blank choropleth map on jupyter, possible JSON format issue

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

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

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

Canada COVID 19 cases 这是我在笔记本上使用的当前数据框。

folium code for choropleth map 这是我用来生成活跃 COVID 19 例与 province/territory 的等值线图的当前 folium 代码。问题是我每次都得到一张空白地图。

到目前为止我尝试过的:

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

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

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

  4. 这让我看看我导入的 JSON 文件是否具有与 folium 不兼容的格式,所以我尝试导入 geopandas,或者更确切地说是安装,但可惜我正在不断导入错误也是如此。我已经尝试了所有代码行,但没有成功。 geopandas conda install

当前 folium 版本 0.11.0

如有任何帮助,我们将不胜感激。

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

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

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

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

获取数据,探索数据:

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"
    )
    )

link的情节: Canada

我已经设法解决了这个问题 - 似乎因为标题是双引号而不是单引号,所以地图显示为空白。 简单更改后,地图显示完美! 只是展示了像这样的一点点遗漏的细节会如何导致...

之前: 请参见上面的 folium 代码示例。

之后:

m = folium.Map(location=[56.130, -106.35],zoom_start=3.5, tiles = "Mapbox Bright")
m.choropleth(
 geo_data=world_geo,
 name='choropleth',
 data=can_cov_yes_df,
 columns=['name', 'numactive'],
 key_on='feature.properties.name',
 fill_color='YlOrRd',
 threshold_scale=threshold_scale,
 fill_opacity=0.7,
 line_opacity=0.2,
 legend_name='Active Cases in Canadadian provinces'
)
folium.LayerControl().add_to(m)
m

现在地图显示: