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 代码。问题是我每次都得到一张空白地图。
到目前为止我尝试过的:
导入 Json 并将我的数据框“prname”列名称替换为实际的 Json feature.properties.name province/territory 名称。这并没有解决我的问题。
将“prname”重命名为“name”。这没有解决我的问题。
检查列“name”、“numactive”的数据类型是否正确,这检查出来了,所以不会是他的问题吗? dtypes of dataframe
这让我看看我导入的 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
现在地图显示:
我一直在积极尝试弄清楚为什么我在 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 代码。问题是我每次都得到一张空白地图。
到目前为止我尝试过的:
导入 Json 并将我的数据框“prname”列名称替换为实际的 Json feature.properties.name province/territory 名称。这并没有解决我的问题。
将“prname”重命名为“name”。这没有解决我的问题。
检查列“name”、“numactive”的数据类型是否正确,这检查出来了,所以不会是他的问题吗? dtypes of dataframe
这让我看看我导入的 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
现在地图显示: