Frage

Ich habe mit kurzem Sweave * für die Erstellung von Berichten Analysen laufen mit R, und jetzt sind auf der Suche das gleiche mit meinem python-Skripte zu tun.

Ich habe Verweis auf gefunden Einbetten von python in Sweave docs, aber das scheint ein bisschen wie ein Hack. Hat jemand gearbeitet, um eine bessere Lösung aus, oder ist es ein Äquivalent für Python ich nicht bewusst bin?

* Sweave ist ein Werkzeug, das zum Einbetten ermöglicht es der R-Code für die kompletten Datenanalysen in Latex Dokumenten

War es hilfreich?

Lösung

Ich glaube nicht, dass es eine direkte Entsprechung, so Romain Francois Vorschlag (in Ihrem Link) ist wahrscheinlich die beste. Vielleicht möchten Sie auch Folgendes berücksichtigen:

  1. Haben Sie einen Blick auf PyLit und pyReport die für Literarische Programmierung mit Python bestimmt sind.
  2. Sphinx ist für mit Python zu dokumentieren und ausgeben kann LaTex.
  3. Hier eine Liste von Werkzeugen für Literarische Programmierung . Einige dieser Arbeiten mit einer beliebigen Programmiersprache.

Andere Tipps

Ich habe eine Python-Implementierung von Sweave geschrieben Pweave genannt, dass Geräte grundlegende Funktionalität und einige Optionen von Sweave für Python-Code eingebettet in reST oder Latex-Dokument. Sie können es hier: http://mpastell.com/pweave und die ursprüngliche Blog-Post sehen hier: http://mpastell.com/2010/03/03/pweave-sweave- für-python /

Dexy ist ein sehr ähnliches Produkt zu Sweave. Ein Vorteil von Dexy ist, dass es nicht ausschließlich auf eine einzige Sprache. Sie könnten ein Dexy Dokument erstellen, das R-Code enthalten, Python-Code oder über irgendetwas anderes.

Das ist ein bisschen spät, aber für die Zukunft könnte man meinen PythonTeX Paket für LaTeX. PythonTeX können Sie Python-Code in einem LaTeX-Dokument eingeben, ausführen und die Ausgabe bringen. Aber im Gegensatz zu Sweave, das Dokument, das Sie tatsächlich bearbeiten ist ein gültiges Dokument .tex (nicht .Snw oder .Rnw), so die Bearbeitung des Nicht-Code Teils des Dokuments schnell und bequem ist.

PythonTeX bietet viele Funktionen, einschließlich der folgenden:

  • Das Dokument kann ohne laufen jeden Python-Code kompiliert werden; Code muss nur ausgeführt werden, wenn es geändert wird.
  • Alle Python Ausgabe wird gespeichert oder zwischengespeichert werden.
  • läuft-Code in benutzerdefinierten Sitzungen. Wenn es mehrere Sitzungen, Sitzungen automatisch parallel laufen alle verfügbaren Kerne verwenden.
  • Fehler und Warnungen werden mit den Zeilennummern des .tex Dokument synchronisiert, so dass Sie genau wissen, woher sie kamen.
  • Der Code kann ausgeführt werden, typeset werden oder typeset und ausgeführt. Syntax-Hervorhebung wird zur Verfügung gestellt von Pygments.
  • Alles, was von Python gedruckt wird automatisch in das .tex Dokument gebracht.
  • Sie können anpassen, wenn der Code erneut ausgeführt (modifiziert, Fehler, Warnungen, etc.).
  • Die PythonTeX Utilities-Klasse ist in allen Code zur Verfügung, die ausgeführt wird. Es ermöglicht Ihnen, automatisch Abhängigkeiten zu verfolgen und erstellte Dateien angeben, die bereinigt werden sollen. Zum Beispiel können Sie das Dokument gesetzt zu erkennen, wenn die Daten, die es abhängt, geändert wird, so wird dieser Code erneut ausgeführt werden.

Eine grundlegende PythonTeX Datei sieht wie folgt aus:

\documentclass{article}
\usepackage{pythontex}

\begin{document}

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

\end{document}

Sie könnten noweb betrachten, welche Sprache ist unabhängig und ist die Basis für Sweave. Ich habe es für Python verwendet und es funktioniert gut.

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

Ich habe Mattis Pweave ein wenig umstrukturiert, so dass es möglich ist, willkürlich „chunk-Prozessoren“ als Plugin-Module zu definieren. Das macht es einfach für mehr Chunk-basierte Text-Vorverarbeitung Anwendungen zu erweitern. Die neu strukturierte Version finden Sie unter https://bitbucket.org/edgimar/pweave/src .

: Als Beispiel könnten Sie das folgende LaTeX-Pweave Dokument (man beachte den „Prozessorname“ in diesem Beispiel wird angegeben mit dem Namen ‚mplfig‘) schreiben
\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}

Sie könnten versuchen, SageTeX die Geräte Sweave -like-Funktionalität für die SAGE Mathematik Plattform. Ich habe nicht mit ihm so viel wie ich möchte, aber SAGE ist im Grunde ein Python-Shell und auswertet Python wie es ist Muttersprache.

rumgespielt

Ich habe auch gedacht, über die gleiche Sache viele Male. Nach der Lektüre Ihrer Fragen und der Suche in Ihren Link Ich habe kleine Änderungen an den benutzerdefinierten Python Sweave Fahrer, dass Sie einen Link zu. Ich änderte es auch den Quellcode zu halten und die Ausgabe als auch die gleiche Art und Weise zu erzeugen, dass Sweave für R der Fall ist.

Ich stellte die modifizierte Version und ein Beispiel hier: http: //mpastell.com/2010/02/09/python-in-sweave-document/

Zugegeben, es ist nicht optimal, aber ich bin ganz zufrieden mit dem Ausgang und ich wie die Fähigkeit, sowohl R und Python in demselben Dokument aufzunehmen.

Bearbeiten über PyLit :

Ich mag auch PyLit und im Gegensatz zu meiner ursprünglichen Antwort, die Sie auch mit ihm fangen ouput können, obwohl es nicht so elegant wie Sweave! Hier ist ein kleines Beispiel, wie es geht:

import sys

# Catch PyLit output

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

# .. include:: output.txt

Was Sie suchen erreicht mit GNU Emacs und org-mode *. org-mode tut far mehr als in einer einzigen Reaktion detailliert sein, aber die relevanten Punkte sind:

  • Unterstützung für Literarische Programmierung mit der Fähigkeit, mehrere Sprachen im gleichen Dokument zu integrieren (einschließlich einer Sprache der Ergebnisse als Eingabe für eine andere Sprache verwendet wird).
  • Grafikintegration.
  • Export in LaTeX, HTML, PDF, und eine Vielzahl anderer Formate nativ, automatisch das Markup zu erzeugen (aber Sie können es manuell tun, auch).
  • Alles ist 100% anpassbar , so dass Sie den Editor anpassen Ihre Bedürfnisse.

Ich habe nicht Python auf meinem System installiert, aber unten ist ein Beispiel von zwei verschiedenen Sprachen, die innerhalb der gleichen Sitzung. Der Auszug wird modifiziert, von dem wunderbaren org-Modus R Tutorial von Erik Iverson, die den Aufbau und effektiven Einsatz von org-mode für Literarische Programmierung Aufgaben erklärt. Diese SciPy 2013 Präsentation zeigt, wie org-mode in einen Workflow integriert werden können (und geschieht verwenden Python).

Emacs kann einschüchternd wirken. Aber für die Statistik / Daten Wissenschaft und bietet enorme Möglichkeiten, die entweder nirgendwo anders angeboten oder sind verteilt auf verschiedene Systeme. Emacs ermöglicht es Ihnen, sie alle in einer einzigen Schnittstelle zu integrieren. Ich denke, Daniel Gopar sagt es am besten in seinem Emacs Tutorial ,

  

Sind Sie Jungs, dass faul? Ich meine, komm schon, habe gerade gelesen das Tutorial, Mann.

Eine Stunde oder so mit dem Emacs Tutorial öffnet die Tür zu einigen extrem leistungsfähige Werkzeuge.

* Emacs kommt mit org-mode. Keine Trennung installieren erforderlich ist.

Nun, mit reticulate das ist ein kürzlich zum besten Implementierung einer Python-Schnittstelle in R könnten Sie mit Sweave weiter und ruft Python inline das R-Interpreter. Zum Beispiel funktioniert dies nun in einer .Rnw oder .Rmd Abschlags-Datei.

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

```{python}
import pandas
data = pandas.read_csv("./data.csv")
print(data.head())
```
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top