4

我正在研究一个科学 python 项目,执行大量计算,生成大量数据。

当必须从这些数据生成报告并嵌入图像(主要使用 matplotlib 计算)时,问题就出现了。我想使用 Python 模块或工具来描述报告并为这些报告“构建”HTML 页面(或浏览器支持的任何格式)。

我正在考虑生成一个 ipython 笔记本,但我无法找到是否有办法这样做(除了创建 json,但我对这种方法持怀疑态度)。

另一种方法是使用 Sphinx,有点像 matplotlib,但我不确定如何真正微调我的各个页面的布局。

最后一个选项是使用 jinja2 模板(或 django-templates 或任何工作的模板引擎)并在其中嵌入 matplotlib 代码。

我知道这很模糊,但找不到任何参考。

4

4 回答 4

5

nbconvert 已合并到 IPython 本身,因此请不要再使用独立版本。它现在完全是基于模板的,因此您可以改变一些事情,从只是 tweeking css、完全重写您的模板,或者只是覆盖您想要的模板的当前部分。

Notebook 格式是一个纯 json 文件,大约需要 20 行来编写一个循环并重新运行代码单元的程序。加上命令行参数,编写笔记本并不难,使其成为“模板”笔记本并在不打开浏览器的情况下在多个数据集上运行它。

一些资源:

以编程方式运行 nbconvert并运行无头笔记本(第一个链接)

于 2013-07-09T09:08:54.637 回答
2

我想你想在 ipython notebook 中工作,然后使用nbconvert

目前,这是它自己的实用程序,已经可以工作(尽管有一些安装障碍,但可以工作),但它目前正在直接实施到 ipython notebook 机器中,我相信它应该在秋天左右发布。

目标是(并且 Fernando Perez 已经证明这是可行的),笔记本在转换后变成一个完整的文档,包含 pdf 文档的图像。

于 2013-07-08T12:45:02.347 回答
1

使用 ipython notebook 的 inline-modus,

ipython 笔记本 --pylab 内联

您可以在浏览器中以交互方式执行您的 matplotlib 脚本(从而生成您的绘图)。然后去

文件 -> 打印视图(在笔记本菜单中,而不是浏览器菜单中)

并保存生成的 html 文件(通过浏览器菜单)。这将包括您之前生成的所有图以及 python 代码。当然,如果没有后台的 notebook-server,您将无法再修改这些 html-Files。你是这个意思吗?

于 2013-07-08T12:05:32.070 回答
0

我刚刚发现了这个老问题并想添加PWeave到列表中,它非常适合从 python 代码/jupyter 笔记本生成报告。我用它与没有大量编程的同事分享我的工作。

它还使用该spyder-reports模块集成到 Spyder,Python 的科学 IDE。

于 2019-04-30T10:20:38.443 回答