无法在iPython笔记本中使用Vincent绘制世界地图

3
这个问题可能与无法在IPython中用Vincent绘图有关,尽管我认为这不是完全相同的问题。
我可以在IPython 0.13.1笔记本中使用Vincent 0.4.4绘制条形图,就像以下示例中所示(在文档中找到):
import vincent
vincent.core.initialize_notebook()

bar = vincent.Bar(multi_iter1['y1'])
bar.axis_titles(x='Index', y='Value')
bar.display()

然而,在数据映射示例中,我无法使用相同的方式来处理世界地图的表示:

import vincent
geo_data = [{'name': 'countries',
             'url': world_topo,
             'feature': 'world-countries'}]

vis = vincent.Map(geo_data=geo_data, scale=200)
vis.to_json('vega.json')

我已经将'value = world_topo'替换为从这里下载的Topojson文件的路径(world-countries.topo.json)。

没有显示错误,也没有发生任何事情。顺便说一下,我没有使用HTTPS。这是最简单的地图图表示例,所以我想它应该可以顺利运行...

有什么想法吗?


1
2条评论:1)Vincent的网页说明它可以与IPython 1.0一起使用,所以您能否升级到更高版本?使用IPython 2.0,按照笔记本中的示例,它可以正常工作。2)不要忘记调用vis.display() - Jakob
嗨,Jakob!你完全正确。我已经调用了vis.display()(我忘记在代码中包含它,我的错误),但是仔细查看后,我意识到问题是由'url'参数引起的:我的IPython版本在查找json拓扑文件时显示404。我尝试使用“file:\\”协议的相对路径,但没有成功。更新到最新版本的IPhython解决了问题。 - predicador37
你应该将你的评论发布为答案,以便我接受它吗? - predicador37
2个回答

3

根据 vincent的网页 ,需要使用> = 1.0 版本的IPython,因此升级到更高版本(如 IPython 2.1)很可能会解决您的问题。在我的ubuntu机器上,vega地图绘制效果良好。

此外,在设置绘图后,需要调用vis.display()方法,例如在此示例笔记本中所示。


1

我尝试的一件事是将世界地图文件放在Python脚本所在的目录中。此外,请记得包含。

import json
vincent.core.initialize_notebook()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接