【问题标题】:Share rCharts via IPython Notebook通过 IPython Notebook 共享 rCharts
【发布时间】:2013-12-29 00:07:17
【问题描述】:

我已经能够将此 map 嵌入到 IPython Notebook 中(这很不错),但我不清楚如何与不使用 Notebook 的人分享它。我熟悉bl.ocks.org 查看器。它非常适合独立示例,但我希望与交互式图表一起在 Notebook 中分享其余的分析。 Notebook 的 HTML 转换和 nbviewer 渲染都无法定位到地图(我收到 404 消息)。

在第一个 404(带有这个gist)之后,我更改了查看器功能以捕获地图文件的 github 位置(V2)。我还不清楚为什么,但这种变化甚至阻止了 nbviewer 渲染周围的材料。有什么更好的解决方法的想法吗?

【问题讨论】:

  • 您的链接错误。请更新它们。 (或者您将要点设为私有,在这种情况下,您需要将其公开。)
  • 很抱歉,没有意识到已经转移了缩短版本。要点链接现在应该可以工作了。
  • 没问题。 不要直接编辑 ipynb 文件。您的更改 (+filename+) 使文件无效 json。 Nbviewer 不是运行您的代码您保存在笔记本中的内容将是显示的内容,尝试让 nbviewer 解释某些变量名称是没有意义的。还存在from IPyhton.display import IFrame 并避免手动使用HTML('<iframe src='i make some mistake and it does not render anymore'></iframe>) 的问题

标签: github ipython-notebook rcharts


【解决方案1】:

问题是地图被保存为本地 HTML 文件 (rChart_map.html),因此当您尝试在线查看时,nbviewer 无法访问它。

即使您将rChart_map.html 上传到 gist,由于路径问题,它也不会显示。在本地,您需要在 IPython 笔记本中将其称为 /files/rChart_map.html,而在在线,它有不同的路径。我之前在 Twitter 上使用#IPython 标签发布了这个问题,但没有收到关于如何调试的回复。

那么,我们将何去何从。好吧,幸运的是,大多数现代浏览器都允许 iframe 使用 srcdoc 标签包含内联 HTML。这允许生成的.ipynb 文件是独立的,如文件末尾的here 所示。

关键是使用下面的代码。第一行使用地图的内联 html 创建一个 iframe,并将其存储在 python 变量 map2 中。第二行导入必要的 python 模块,第三行显示 HTML。请注意,我们使用h2[0],因为map2 是一个数组,由于R 的转换,它是矢量化的。

map2 = %R paste(capture.output(map$show('iframesrc', cdn = TRUE)), collapse = '\n')
from IPython.display import display, HTML
HTML(map2[0])

为此,您需要有rCharts 版本> 0.4.1。

我有兴趣让rCharts 更容易在 IPython 笔记本中使用。所以欢迎任何建议/反馈。

【讨论】:

  • 这是一个很好的解决方法,肯定对我有用。我不确定我是否有足够的 HTML 知识来提供最有效的开发建议(我对 HTML 的大部分工作都是小型 hack-y 类型的干预)。我可以提供可能与其他用例有一些重叠的用例。当它们出现时,我会将它们放入您的Issues 流中,除非有首选的替代方案。感谢您的帮助。我再次感谢您回复的速度和有效性。
  • 不要引用带有/files/files/没有前导斜杠的本地文件。如果您在 ipynb 旁边包含链接文件,它将在 nbviewer 上运行。
  • 同意 nbviewer 中可能存在阻止文件使用 gist 的错误(需要在 url 中添加尾部斜杠)
  • 那么,files/file.html 可以在本地和在线使用 nbviewer 吗?
  • @Matt 添加斜杠也不起作用。您能否发布一个示例,说明如何使files/... 链接在nbviewer 中工作?
猜你喜欢
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 2014-05-24
  • 2018-11-28
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多