问题描述
下午好,
我正试图结合使用大熊猫,大熊猫和大叶草来创建多边形地图,然后将其嵌入到网页中.
I'm trying to use a combination of geopandas, pandas and folium to create a polygon map that I can embed incorporate into a web page.
由于某种原因,它没有显示并且想知道是否有人可以提供帮助.
For some reason, it's not displaying and wonder if anyone can help.
我已采取的步骤:
1)从英国的操作系统中获取一个.shp作为议会的边界.
1) Grabbed a .shp from the UK's OS for Parliamentary boundaries.
2)然后,我使用geopandas将投影更改为epsg = 4326,然后将其导出为GeoJSON,格式如下:
2) I've then used geopandas to change the projection to epsg=4326 and then exported as GeoJSON which takes the following format:
{ "type": "Feature", "properties": { "PCON13CD": "E14000532", "PCON13CDO": "A03", "PCON13NM": "Altrincham and Sale West" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -2.313999519326579, 53.357408280545918 ], [ -2.313941776174758, 53.358341455420039 ], [ -2.31519699483377, 53.359035664493433 ], [ -2.317953152796459, 53.359102954309151 ], [ -2.319855973429864, 53.358581917200119 ],... ] ] ] } },...
然后我想做的就是用以下格式dty将这些数据与选区的数据框进行网格划分:
Then what I'd like to do is mesh this with a dataframe of constituencies in the following format, dty:
constituency count
0 Burton 667
1 Cannock Chase 595
2 Cheltenham 22
3 Cheshire East 2
4 Congleton 1
5 Derbyshire Dales 1
6 East Staffordshire 4
import folium
mapf = folium.Map(width=700, height=370, tiles = "Stamen Toner", zoom_start=8, location= ["53.0219392","-2.1597434"])
mapf.geo_json(geo_path="geo_json_shape2.json",
data_out="data.json",
data=dty,
columns=["constituency","count"],
key_on="feature.properties.PCON13NM.geometry.type.Polygon",
fill_color='PuRd',
fill_opacity=0.7,
line_opacity=0.2,
reset="True")
mapf的输出如下:
The output from mapf looks like:
mapf.json_data
mapf.json_data
{'../../Crime_data/staffs_data92.json': [{'Burton': 667,
'Cannock Chase': 595,
'Cheltenham': 22,
'Cheshire East': 2,
'Congleton': 1,
'Derbyshire Dales': 1,
'East Staffordshire': 4,
'Lichfield': 438,
'Newcastle-under-Lyme': 543,
'North Warwickshire': 1,
'Shropshire': 17,
'South Staffordshire': 358,
'Stafford': 623,
'Staffordshire Moorlands': 359,
'Stoke-on-Trent Central': 1053,
'Stoke-on-Trent North': 921,
'Stoke-on-Trent South': 766,
'Stone': 270,
'Tamworth': 600,
'Walsall': 1}]}
尽管mapf.create_map()函数成功创建了地图,但多边形无法渲染.
Although the mapf.create_map() function successfully creates a map, the polygons don't render.
有人可以建议任何调试步骤吗?
Can anyone suggest any debugging steps?
如果有人需要它们,我还不清楚如何添加完整数据文件,所以请告诉我.
I'm never clear on how to add the full data files if anyone needs them, so please let me know.
谢谢您的时间.
推荐答案
@ elksie5000,尝试mplleaflet非常简单.
@elksie5000, Try mplleaflet it is extremely straightforward.
pip install mplleaflet
在Jupyter/Ipython笔记本中:
in Jupyter/Ipython notebook:
import mplleaflet
ax = geopandas_df.plot(column='variable_to_plot', scheme='QUANTILES', k=9, colormap='YlOrRd')
mplleaflet.show(fig=ax.figure)
这篇关于Python folium GeoJSON地图未显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!