我真的很喜欢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/

10-12 16:58