【问题标题】:Unable to plot worldmap with Vincent in iPython notebook无法在 iPython 笔记本中使用 Vincent 绘制世界地图
【发布时间】:2014-07-19 07:58:24
【问题描述】:

这个问题可能与Unable plot with vincent in IPython 有关,尽管我认为这不是完全相同的问题。

我可以在 IPython 0.13.1 笔记本中使用 Vincent 0.4.4 绘制条形图,如下例所示(在 docs 中找到):

import vincent
vincent.core.initialize_notebook()

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

但是,我无法对数据映射example 中的世界地图表示做同样的事情:

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')

我已将值“world_topo”替换为从here 下载的 Topojson 文件 (world-countries.topo.json) 的路径。

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

有什么想法吗?

【问题讨论】:

  • 2 cmets: 1) vincent 的webpage 声明它适用于 IPython 1.0,那么您可以升级到更新的版本吗?使用 IPython 2.0,它可以在示例 notebook 之后正常工作,2) 不要忘记调用 vis.display()
  • 嗨,雅各布!你完全正确。我已经在调用 vis.display() (我忘了包含在代码中,我的错误),但仔细查看后我意识到问题是由 'url' 参数引起的:我的 IPython 版本在查找 json 拓扑时显示 404文件。我尝试使用带有“file:\\\”协议的相对路径但没有成功。更新到最新版本的 IPhython 解决了问题。
  • 您应该发表您的评论作为答案以便我接受吗?

标签: python ipython ipython-notebook vega vincent


【解决方案1】:

webpage of vincent 之后,需要>= 1.0 的IPython 版本,因此,升级到更新的版本(例如IPython 2.1)很可能会解决您的问题。在我的 ubuntu 机器上,vega 的地图效果很好。

另外,需要在绘图设置完成后调用vis.display()方法,如e.g. this example notebook.

【讨论】:

    【解决方案2】:

    我尝试的一件事是将世界地图文件放在 Python 脚本的目录中。另外记得包括

    import json
    vincent.core.initialize_notebook()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-01
      • 2015-03-01
      • 1970-01-01
      • 2023-03-21
      • 2016-03-18
      • 1970-01-01
      • 2015-10-15
      • 2014-10-02
      相关资源
      最近更新 更多