Bux*_*ert 4 python geopandas folium
我制作了一个 geopandas 数据框,我想用它geopandas_dataframe.explore()来创建交互式地图。这是我的代码。首先,我创建 geopandas 数据框,检查 dtypes 并尝试使用gdf.explore(). 不幸的是,我的代码刚刚完成,没有错误,并且没有显示地图。
代码:
geometry = [Point(xy) for xy in zip(df[1], df[0])]
gdf = geopandas.GeoDataFrame(df, geometry=geometry)
print(gdf.head())
print(gdf.dtypes)
gdf.explore()
Run Code Online (Sandbox Code Playgroud)
输出:
0 1 geometry
0 51.858306 5.778404 POINT (5.77840 51.85831)
1 51.858322 5.778410 POINT (5.77841 51.85832)
2 51.858338 5.778416 POINT (5.77842 51.85834)
3 51.858354 5.778422 POINT (5.77842 51.85835)
4 51.858370 5.778429 POINT (5.77843 51.85837)
0 float64
1 float64
geometry geometry
dtype: object
Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)
为什么我拿不到地图?我已经尝试过了gdf.show(),但那不存在。我需要做什么才能显示 geopandas 地图?
你使用什么IDE?在 Jupyter Notebook 中,您的代码(稍作修改)适合我。然而,当我在 PyCharm 中运行它时,我得到“进程已完成,退出代码 0”,但没有绘图。
import geopandas as gpd
import pandas as pd
from shapely.geometry import Point
data_dict = {'x': {0: -110.1, 1: -110.2, 2: -110.3, 3: -110.4, 4: -110.5},
'y': {0: 40.1, 1: 40.2, 2: 40.3, 3: 40.4, 4: 40.5}}
df = pd.DataFrame(data_dict)
geometry = [Point(xy) for xy in zip(df['x'], df['y'])]
gdf = gpd.GeoDataFrame(df, geometry=geometry, crs=4326)
print(gdf.head())
print(gdf.dtypes)
gdf.explore()
Run Code Online (Sandbox Code Playgroud)
编辑:看起来你可以将你的 folium 图保存到 html 中。这对我来说来自 PyCharm 有用。
m = gdf.explore()
outfp = r"<your dir path>\base_map.html"
m.save(outfp)
Run Code Online (Sandbox Code Playgroud)