我真的很喜欢folium在jupyter笔记本上如何与python一起工作(我还没有尝试过,但是从教程中判断)。我要实现的功能是相同的,但对于使用spark.ipyspark的齐柏林飞艇笔记本电脑而言。 Folium功能将大大提高齐柏林飞艇笔记本的数据绘图功能。
我试过的很简单:
import folium
m = folium.Map(location=[45.5236, -122.6750])
m
这只是返回
<folium.folium.Map at 0x10f4a3518>
我接下来尝试的是构建HTML映射,将其保存在本地,然后将其调用为Zeppelin段落的输出。
import folium
from IPython.display import HTML
from IPython.display import IFrame
m =folium.Map(
location=[45.5236, -122.6750],
tiles='Stamen Toner',
zoom_start=13
)
m.render_iframe = True
m.save('/Users/abc/m.html')
HTML("<iframe src=file:///Users/abc/m.html width=700 height=350></iframe>")
这又给了我:
<IPython.core.display.HTML object>
然后,我将最后一行与:
IFrame("src=file:///Users/abc/m.html", width=700, height=350)
再次:
<IPython.lib.display.IFrame at 0x112882c88>
当我尝试使用python打印时:
print("%html <iframe src=file:///Users/abc/m.html width=700, height=350></iframe>")
我得到700x350空白的白色窗口作为该段的输出。当我尝试将src更改为例如“ https://zeppelin.apache.org/”时,它可以很好地工作。
我觉得有两件事不能正常工作。
1.带齐柏林飞艇笔记本电脑的Folium模块未正确调用地图。
2.显示本地HTML页面作为齐柏林飞艇段落的输出。
有人尝试过吗?有人成功克服了这个难题吗?
最佳答案
感谢您的建议,我可以通过添加以下内容来运行它:
html_string = m.get_root().render()
print("%html", html_string)
所以现在整个代码看起来像:
import folium
m =folium.Map(
location=[45.5236, -122.6750],
tiles='Stamen Toner',
zoom_start=13,
width=600,height=300
)
html_string = m.get_root().render()
print("%html", html_string)
编辑:
使用上述方法修改了整个齐柏林飞艇笔记本的外观。我使用了不同的方法,使用
html_string = m._repr_html_()
,根据jupyter中用于在iframe中显示HTML的此链接(github.com/python-visualization/folium/issues/781)。现在编写代码:
import folium
m =folium.Map(
location=[45.5236, -122.6750],
tiles='Stamen Toner',
zoom_start=13,
width=600,height=300
)
html_string = m._repr_html_()
print("%html", html_string)
关于python - 齐柏林飞艇和spark.pyspark和大叶,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51715877/