Python中的科学报告

4
我正在进行一项科学Python项目,执行大量计算生成许多数据。
问题在于当需要从这些数据中生成报告时,嵌入图像(大多数是使用matplotlib计算)时。我想使用Python模块或工具来描述报告并为这些报告“构建”HTML页面(或任何浏览器支持的格式)。
我考虑生成一个ipython笔记本,但我无法找到是否有方法这样做(除了创建json,但我对此方法表示怀疑)。
另一种方法是使用Sphinx,有点像matplotlib,但我不确定如何真正微调我的各个页面的布局。
最后一种选择是使用jinja2模板(或django-templates或任何工作的模板引擎),并嵌入matplotlib代码。
我知道这很模糊,但无法找到任何参考资料。

1
我猜你得自己为HTML页面添加样式,因为没有现成的模块可用。 - tamasgal
1
似乎可以保存和导入Python文件到ipython笔记本中,而不是JSON。然而,一个ipython笔记本将包含所有的命令并生成所有的文件(再次),因此对于一个适当的报告来说,可能不是最合适的选项。 - user707650
@Evert 是的,这终于是我所想的。 - LB40
@septi 我只是想确认一下。谢谢。 - LB40
4个回答

5

nbconvert已经合并到IPython本身中了,因此请不要再使用独立版本。现在它完全基于模板,所以您可以通过调整css、完全重写您的模板或仅覆盖您想要的当前部分的模板来更改内容。

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

一些资源:

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


2
我认为你想在IPython笔记本中工作,然后使用nbconvert
目前,这是一个独立的实用程序,已经可以使用(虽然有一些安装障碍,但是可以使用),但它目前正在直接实现到IPython笔记本机制中,我相信应该在秋季发布。
目标是(Fernando Perez已经证明这是可行的),将笔记本转换成完全记录、包含图像的PDF文档。

1
笔记本是您实际的数据分析工具,这就是为什么它如此方便,可以转换为报告。即使在您拥有最终的Python脚本来进行分析之前,您也会尝试在笔记本中使用该代码的部分。一旦您找到了有效的代码片段,您将把它们复制到一个更完整的Python脚本中,然后可以从笔记本中调用该脚本,包括matplotlib绘图命令,这些命令也会显示在笔记本中(请参见ericmjl的答案如何启动它)。这样,您的笔记本就会变得越来越小,而您的工具则会不断增长。 - K.-Michael Aye
1
但是当您深入挖掘数据时,笔记本的探索性质从未丢失,这是值得报告的好事情。 - K.-Michael Aye
nbconvert已经合并到IPython-dev中,不再是独立的了。 - Matt
@Matt,这就是我在第二段评论中的原因。LB,你以前从未提到过你对_style_有问题?我相信,nbconvert支持主题化。 - K.-Michael Aye
是的,我的意思是“不要使用独立版本,它已经不存在了,你必须使用IPython dev。”否则,IPython 1.0的最后期限是一周。 (是的,我们会晚些) - Matt
显示剩余3条评论

1
使用ipython笔记本的内联模式,您可以在浏览器中交互地执行matplotlib脚本(从而生成绘图)。然后转到“文件”->“打印预览”(在笔记本菜单中,而不是浏览器菜单),并保存生成的html文件(通过浏览器菜单)。这将包括您之前生成的所有绘图以及python代码。当然,您无法再修改这些html文件而不使用后台的笔记本服务器。这是您的意思吗?

0

我刚刚发现了这个旧问题,想要添加PWeave到列表中。它非常适合从Python代码/Jupyter笔记本生成报告。我使用它与那些没有深入学习编程的同事分享我的工作。

它还可以与Spyder集成,这是Python的科学IDE,使用spyder-reports模块。


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