如何在Jupyter Notebook中加载本地保存的Folium地图
如何在Jupyter Notebook中加载本地保存的Folium地图
嘿,我来帮你解决这个问题!针对你想在另一个Jupyter Notebook里加载本地保存的Folium地图的需求,我整理了两种实用的方案,不管是用HTML文件还是序列化对象都能轻松实现:
方法1:直接加载本地HTML文件
如果你已经用m.save('map.html')生成了HTML文件,那在另一个Notebook里可以借助IPython的显示模块直接渲染它,有两种方式可选:
方式A:用IFrame嵌入HTML文件
这种方式相当于把本地HTML文件嵌入到Notebook的单元格里,你可以自定义显示的宽高:
from IPython.display import IFrame # 传入HTML文件路径,设置合适的宽高 IFrame(src='map.html', width=800, height=600)
方式B:读取HTML内容并渲染
如果你不想用嵌入框架,也可以直接读取HTML文件的内容,然后用HTML函数渲染:
from IPython.display import HTML # 读取本地HTML文件内容 with open('map.html', 'r', encoding='utf-8') as f: map_content = f.read() # 在单元格中渲染地图 HTML(map_content)
注意:如果你的目标Notebook和map.html不在同一个文件夹下,记得写对相对路径(比如
src='../data/map.html')或者绝对路径哦。
方法2:序列化Folium地图对象(更灵活)
如果之后还想对地图进行编辑(比如添加标记、修改样式),推荐用pickle把地图对象序列化保存,这样加载后它还是一个完整的Folium Map对象,能继续操作:
第一步:保存地图为pickle文件
在生成地图的Notebook里执行:
import folium import pickle # 创建地图对象 m = folium.Map(location=[45.5236, -122.6750]) # 序列化保存到本地 with open('map.pkl', 'wb') as f: pickle.dump(m, f)
第二步:在另一个Notebook加载并显示
import pickle from IPython.display import display # 加载pickle文件中的地图对象 with open('map.pkl', 'rb') as f: loaded_map = pickle.load(f) # 直接显示地图,还能继续编辑它哦 display(loaded_map) # 举个例子:加载后添加一个标记 folium.Marker(location=[45.5236, -122.6750], popup='波特兰').add_to(loaded_map) display(loaded_map)
这两种方法都能完美满足你的本地使用需求,不用把地图上传到网络就能在Jupyter里查看和操作啦~
备注:内容来源于stack exchange,提问作者Suraj Shourie
相关产品推荐
相关产品推荐

