Python中的科学报告

时间:2013-07-08 11:33:47

标签: python ipython jinja2 ipython-notebook

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

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

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

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

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

我知道它含糊不清但无法找到任何参考。

4 个答案:

答案 0 :(得分:5)

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

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

一些资源:

programatically run nbconvert,然后运行笔记本headless (first link)

答案 1 :(得分:2)

我认为您想在ipython笔记本中工作,然后使用nbconvert

目前,这是它自己的实用程序,已经有效(虽然有一些安装障碍,但工作)但它目前正在直接实现到ipython笔记本电脑机器,我认为应该在秋季发布,或者说。

目标是(并且费尔南多·佩雷斯证明这是有效的),笔记本在转换后成为包含pdf文档的完整记录的图像。

答案 2 :(得分:1)

使用ipython notebook的inline-modus,

  

ipython notebook --pylab inline

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

  

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

并保存生成的html-File(通过浏览器菜单)。这将包括您之前生成的所有图以及python代码。当然,如果没有笔记本电脑服务器,你就不能再修改这些html-Files了。 这是你的意思吗?

答案 3 :(得分:0)

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

它还使用spyder-reports模块集成到Spyder(Python的科学IDE)中。