我从这里运行了这个在 folium 地图上显示图像的 folium 示例。我在我的 spyder 上运行了这个程序,虽然它在 jupyter 上运行良好import numpy as npimport pandas as pdimport numpy.ma as maimport foliumdef make_data(): x = np.linspace(-np.pi, np.pi, 101) sin = np.sin(x) cos = np.cos(x) cos[20:50] = np.NaN return pd.DataFrame(np.asanyarray([sin, cos]).T, columns=['sin', 'cos'], index=x)df = make_data()resolution, width, height = 75, 7, 3station = '42'lon, lat = -42, -21m = folium.Map(location=[lat, lon], zoom_start=5)import base64import matplotlib.pyplot as pltfig, ax = plt.subplots(figsize=(width, height))ax = df.plot(ax=ax, legend=False)ax.set_ylabel('Sea surface height (m)')png = 'mpld3_{}.png'.format(station)fig.savefig(png, dpi=resolution)encoded = base64.b64encode(open(png, 'rb').read())from folium import IFramehtml = '<img src="data:image/png;base64,{}">'.formatiframe = IFrame(html(encoded), width=(width*resolution)+20, height=(height*resolution)+20)popup = folium.Popup(iframe, max_width=2650)icon = folium.Icon(color="red", icon="ok")marker = folium.Marker(location=[lat-2, lon-1], popup=popup, icon=icon)marker.add_to(m)m.save('test.html')预期结果我的输出
1 回答
SMILET
TA贡献1796条经验 获得超4个赞
使用folium-0.10.1
,您只需修改这一行:
encoded = base64.b64encode(open(png, 'rb').read())
进入
encoded = base64.b64encode(open(png, 'rb').read()).decode()
你得到:
添加回答
举报
0/150
提交
取消