Question

J'ai récemment commencé à utiliser Sweave * pour la création de rapports de analyses R courir avec, et je cherche maintenant à faire la même chose avec mes scripts python.

J'ai trouvé des références à python dans l'intégration Sweave docs, mais qui semble être un peu un hack. Quelqu'un at-il élaboré une meilleure solution, ou est-il un équivalent pour python Je ne suis pas au courant?

* Sweave est un outil qui permet d'intégrer le code de R pour l'analyse des données complète dans les documents de latex

Était-ce utile?

La solution

Je ne crois pas qu'il y ait un équivalent direct, donc la suggestion de Romain François (dans votre lien) est probablement le meilleur. Vous pouvez également considérer les points suivants:

  1. Jetez un oeil à PyLit et pyReport qui sont destinés à la programmation avec Python lire et écrire.
  2. Sphinx est idéal pour documenter avec python, et peut produire LaTex.
  3. Voici une liste d'outils de programmation lire et écrire. Certains de ces travaux avec tout langage de programmation.

Autres conseils

J'ai écrit une implémentation Python de Sweave appelé Pweave qui implémente les fonctionnalités de base et certaines options de Sweave pour le code Python intégré dans ou reST document de latex. Vous pouvez l'obtenir ici: http://mpastell.com/pweave et voir le message blog ici: http://mpastell.com/2010/03/03/pweave-sweave- pour-python /

Dexy est un produit très similaire à Sweave. Un avantage de Dexy est qu'il n'y a pas exclusif à une seule langue. Vous pouvez créer un document Dexy qui comprenait le code R, le code Python, ou autre chose.

Ceci est un peu en retard, mais pour référence ultérieure, vous pourriez envisager mon paquet PythonTeX pour LaTeX. PythonTeX permet d'entrer le code Python dans un document LaTeX, exécutez, et ramener la sortie. Mais contrairement à Sweave, le document que vous avez réellement modifier est un document .tex valide (non .Snw ou .Rnw), l'édition de sorte que la partie non code du document est rapide et pratique.

PythonTeX offre de nombreuses fonctionnalités, y compris les éléments suivants:

  • Le document peut être compilé sans exécuter de code Python; le code ne doit être exécuté lorsqu'il est modifié.
  • Toutes les sorties Python est enregistré ou mis en mémoire cache.
  • code fonctionne dans les sessions définies par l'utilisateur. S'il y a plusieurs sessions, des sessions se déroulent automatiquement en parallèle en utilisant tous les cœurs disponibles.
  • Les erreurs et les avertissements sont synchronisés avec les numéros de ligne du document .tex, afin que vous sachiez exactement où ils venaient.
  • Le code peut être exécuté, typeset ou typeset et exécuté. La coloration syntaxique est fourni par Pygments.
  • Tout imprimé par Python est automatiquement placé dans le document .tex.
  • Vous pouvez personnaliser lorsque le code est exécuté à nouveau (modifié, erreurs, avertissements, etc.).
  • Les utilitaires PythonTeX classe est disponible dans tout le code qui est exécuté. Il vous permet de suivre automatiquement les dépendances et de spécifier les fichiers créés qui doivent être nettoyés. Par exemple, vous pouvez définir le document pour détecter les données dont il dépend est modifié, de sorte que le code sera à nouveau exécutée.

Un fichier PythonTeX de base ressemble à ceci:

\documentclass{article}
\usepackage{pythontex}

\begin{document}

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

\end{document}

Vous pouvez envisager noweb, qui est indépendant du langage et est la base de Sweave. Je l'ai utilisé pour Python et il fonctionne bien.

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

Je l'ai restructuré Pweave de Matti un peu, de sorte qu'il est possible de définir « chunk-processeurs » arbitraires plugin-modules. Cela rend plus facile d'étendre pour plusieurs applications prétraiter texte par CHUNK. La version restructurée est disponible à https://bitbucket.org/edgimar/pweave/src . À titre d'exemple, vous pouvez écrire le document LaTeX-Pweave suivant (notez le « nom du processeur » dans cet exemple est spécifié avec le nom « 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}

J'ai aussi pensé à la même chose plusieurs fois. Après avoir lu vos questions et en regardant dans votre lien, je fait de petites modifications au pilote Sweave python personnalisé, que vous lien. Je l'ai modifié aussi de garder le code source et produire la sortie et de la même manière que Sweave fait R.

J'ai posté la version modifiée et un exemple: http: //mpastell.com/2010/02/09/python-in-sweave-document/

Certes, ce n'est pas optimale mais je suis tout à fait satisfait de la sortie et j'aime la capacité d'inclure à la fois R et Python dans le même document.

Modifier à propos PyLit :

Je aime aussi PyLit et contrairement à ma première réponse, vous pouvez prendre ouput avec aussi bien, même si elle pas aussi élégant que Sweave! Voici un petit exemple comment le faire:

import sys

# Catch PyLit output

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

# .. include:: output.txt

Qu'est-ce que vous cherchez est atteint avec GNU Emacs et org-mode *. org-mode fait far plus peuvent être détaillés dans une réponse unique, mais les points pertinents sont:

  • Soutien à la programmation littéraire avec la possibilité d'intégrer plusieurs langues dans le même document (y compris en utilisant un des résultats de la langue que l'entrée dans une autre langue).
  • l'intégration graphique.
  • Exporter vers LaTeX, HTML, PDF, et une variété d'autres formats nativement, générant automatiquement le balisage (mais vous pouvez le faire manuellement, aussi).
  • Tout est 100% personnalisable , vous permettant d'adapter l'éditeur vos besoins.

Je n'ai pas Python installé sur mon système, mais au-dessous est un exemple de deux langues différentes en cours d'exécution dans la même session. L'extrait est modifié à partir du merveilleux org-mode tutoriel R par Erik Iverson qui explique la mise en place et l'utilisation efficace des org-mode pour les tâches de programmation littéraire. Cette SciPy 2013 de présentation montre comment org-mode peut être intégré dans un flux de travail (et se utiliser Python).

Emacs peut sembler intimidant. Mais pour les statistiques / science des données, il offre des capacités énormes que ce soit ne sont pas offerts nulle part ailleurs ou sont répartis sur différents systèmes. Emacs vous permet de les intégrer tous dans une seule interface. Je pense que Daniel Gopar dit mieux dans son Emacs tutoriel ,

  

Êtes-vous les gars que paresseux? Je veux dire, vas-y, il suffit de lire le tutoriel, l'homme.

Une heure avec le tutoriel Emacs ouvre la porte à des outils extrêmement puissants.

* Emacs est livré avec org-mode. Aucune installation séparée est nécessaire.

Eh bien, avec réticulaire qui est une meilleure mise en œuvre récente d'une interface Python R vous pourriez continuer à utiliser Sweave et appeler à l'aide en ligne Python l'interpréteur R. Par exemple, cela fonctionne maintenant dans un fichier Markdown .Rnw ou .RMD.

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

```{python}
import pandas
data = pandas.read_csv("./data.csv")
print(data.head())
```
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top