Pregunta

Recientemente he empezado a usar Sweave* para la creación de informes de análisis se ejecuta con R, y ahora estoy mirando para hacer lo mismo con mi secuencias de comandos de python.

He encontrado referencias a la incrustación de python en Sweave google docs, pero que parece un poco de un hack.Alguien ha trabajado fuera una solución mejor, o es que hay un equivalente para python no soy consciente?

* Sweave es una herramienta que permite incrustar el código R para completar el análisis de datos en los documentos de latex

¿Fue útil?

Solución

No creo que hay un equivalente directo, lo que la sugerencia de Romain Francois (en su enlace) es probablemente el mejor. También puede ser que desee considerar lo siguiente:

  1. Para consultar PyLit y PyReport que están destinados a la programación ilustrada con Python.
  2. Sphinx es grande para documentar con Python, y el látex puede dar salida.
  3. una lista de herramientas para la programación literaria . Algunos de estos trabajos con cualquier lenguaje de programación.

Otros consejos

He escrito una aplicación Python de Sweave llama Pweave que implementa la funcionalidad básica y algunas opciones de Sweave de código Python incrustado en el documento de descanso o de látex. Se puede conseguir aquí: http://mpastell.com/pweave y ver el blog original aquí: http://mpastell.com/2010/03/03/pweave-sweave- para-python /

Dexy es un producto muy similar a Sweave. Una ventaja de Dexy es que no es exclusivo de una sola lengua. Se puede crear un documento que incluía Dexy código R, código Python, o cualquier otra cosa.

Esto es un poco tarde, pero para referencia futura que podría considerar mi PythonTeX paquete para LaTeX. PythonTeX le permite introducir el código Python en un documento LaTeX, ejecuta, y traer de vuelta a la salida. Pero a diferencia de Sweave, el documento que en realidad Edit es un documento válido .tex (no .Snw o .Rnw), por lo que la edición de la parte no código del documento es rápido y conveniente.

PythonTeX proporciona muchas características, incluyendo las siguientes:

  • El documento se puede compilar sin ejecutar ningún código Python; código sólo debe ser ejecutado cuando se modifica.
  • salida Todo Python se guarda o se almacena en caché.
  • código se ejecuta en sesiones definidas por el usuario. Si hay varias sesiones, sesiones de ejecución automática en paralelo utilizando todos los núcleos disponibles.
  • Los errores y advertencias se sincronizan con los números de línea del documento .tex, para que sepa exactamente de dónde venían.
  • El código puede ser ejecutado, compuesto tipo o composición tipográfica y ejecutado. El resaltado de sintaxis es proporcionada por Pygments.
  • Cualquier cosa impreso por Python es llevado automáticamente en el documento .tex.
  • Usted puede personalizar cuando el código se vuelve a ejecutar (modificados, errores, advertencias, etc.).
  • La clase utilidades PythonTeX está disponible en todo el código que se ejecuta. Permite realizar un seguimiento de las dependencias de forma automática y especificar los archivos creados que deben ser limpiados. Por ejemplo, puede configurar el documento para detectar cuando los datos de los que depende se modifica, por lo que el código será re-ejecutado.

Un aspecto básico de archivos PythonTeX como esta:

\documentclass{article}
\usepackage{pythontex}

\begin{document}

\begin{pycode}
#Whatever you want here!
\end{pycode}

\end{document}

Se podría considerar noweb, que es independiente del lenguaje y es la base para Sweave. Lo he utilizado para Python y funciona bien.

http://www.cs.tufts.edu/~nr/noweb/

He reestructurado Pweave de Matti un poco, por lo que es posible definir arbitrarias "chunk-procesadores" como plugin-módulos. Esto hace que sea fácil de extender por varias aplicaciones de texto-procesamiento previo basado en trozo. La versión reestructurada está disponible en https://bitbucket.org/edgimar/pweave/src . A modo de ejemplo, se podría escribir el siguiente documento LaTeX-Pweave (nótese el "nombre del procesador" en este ejemplo se especifica con el nombre 'mplfig'):

\documentclass[a4paper]{article}
\usepackage{graphicx}
\begin{document}
\title{Test document}
\maketitle

Don't miss the great information in Figure \ref{myfig}!


<<p=mplfig, label=myfig, caption = "Figure caption...">>=
import sys
import pylab as pl

pl.plot([1,2,3,4,5],['2,4,6,8,10'], 'b.', markersize=15)
pl.axis('scaled')
pl.axis([-3,3, -3,3]) # [xmin,xmax, ymin,ymax]
@

\end{document}

Usted podría intentar SageTeX que implementa Sweave -Como funcionalidad para la SAGE plataforma de matemáticas. No he jugado un rato con él tanto como me gustaría, pero SAGE es básicamente un intérprete de Python y Python evalúa ya que es el idioma nativo.

También he pensado lo mismo muchas veces.Después de leer tu pregunta y busca en tu enlace que he hecho pequeñas modificaciones a la costumbre de python Sweave conductor, de que el vínculo.He modificado también para mantener el código fuente y producir el resultado así de la misma manera que Sweave hace por R.

He publicado la versión modificada y un ejemplo aquí: http://mpastell.com/2010/02/09/python-in-sweave-document/

Concedido, no es óptimo, pero estoy bastante contento con el resultado y me gusta la capacidad para incluir R y Python en el mismo documento.

Editar sobre PyLit:

También me gusta PyLit y contrario a mi respuesta original se puede coger la salida con él, aunque no tan elegante como Sweave!He aquí un pequeño ejemplo de cómo hacerlo:

import sys

# Catch PyLit output

a = range(3)
sys.stdout = open('output.txt', 'w')
print a
sys.stdout = sys.__stdout__

# .. include:: output.txt

Lo que usted está buscando se consigue con GNU Emacs y org-mode *. org-mode hace ahora más que puede ser detallado en una sola respuesta, pero los puntos relevantes son:

  • Apoyo a la programación ilustrada con la capacidad de integrar múltiples idiomas dentro del mismo documento (incluyendo el uso de los resultados de una lengua como la entrada para otro idioma).
  • Integración de gráficos.
  • Exportar a LaTeX, HTML, PDF, y una variedad de otros formatos de forma nativa, generando automáticamente el margen de beneficio (pero se puede hacer de forma manual, también).
  • 100% personalizable , lo que permite adaptar el editor de sus necesidades.

No tengo Python instalado en mi sistema, pero a continuación es un ejemplo de dos idiomas diferentes que se ejecutan dentro de la misma sesión. El extracto se modifica de la maravillosa R tutorial por Erik Iverson lo que explica la puesta en marcha y el uso eficaz de org-mode para tareas de programación literaria org-mode. Este SciPy 2013 la presentación demuestra cómo org-mode se puede integrar en un flujo de trabajo (y sucede utilizar Python).

introducir descripción de la imagen aquí

Emacs puede parecer intimidante. Sin embargo, para la ciencia estadísticas / datos, que ofrece enormes posibilidades que, o bien no se ofrecen en cualquier otro lugar o se distribuyen en varios sistemas. Emacs le permite integrar a todos en una sola interfaz. Creo que Daniel Gopar dice mejor en su Emacs tutorial ,

  

Son ustedes que los perezosos? Quiero decir, vamos, acabo de leer el tutorial, hombre.

Una hora más o menos con el tutorial de Emacs abre la puerta a algunas herramientas muy poderosas.

* Emacs viene con org-mode. Sin instalación independiente que se requiere.

Bueno, con reticulada que es mejor una reciente implementación de una interfaz de Python en I usted podría seguir utilizando Sweave y llamar a Python en línea usando el intérprete R. Por ejemplo, esto ahora trabaja en un archivo de rebajas .Rnw o .RMD.

```{r example, include=FALSE}
library(reticulate)
use_python("./dir/python")
```

```{python}
import pandas
data = pandas.read_csv("./data.csv")
print(data.head())
```
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top