2015-09-21 16 views
6

Ich habe gerade begonnen, Jupyter mit R zu verwenden, und ich frage mich, ob es eine gute Möglichkeit gibt, HTML- oder LaTeX-Ausgabe anzuzeigen.Wie man LaTeX/HTML in Jupyter (R) darstellt?

Hier einige Beispiel-Code, der ich gearbeitet Wunsch:

library(xtable) 
x <- runif(500, 1, 50) 
y <- x + runif(500, -5, 5) 
model <- lm(y~x) 
print(xtable(model), type = 'html') 

Statt den HTML-Code zu machen, zeigt er es nur als Nur-Text. Gibt es eine Möglichkeit, dieses Verhalten zu ändern?

+0

Ihren Code nicht angezeigt Klartext, aber HTML-Code. Bitte klären Sie Ihre Frage. – SabDeM

+0

Rechts - es zeigt den HTML-Code als Klartext an, anstatt ihn als HTML-Tabelle zu rendern. – Jeremy

Antwort

12

Eine Kombination aus repr (für Einstellungsoptionen) und IRdisplay funktioniert für HTML. Andere wissen vielleicht etwas über Latex.

# Cell 1 ------------------------------------------------------------------ 

library(xtable) 
library(IRdisplay) 
library(repr) 

data(tli) 
tli.table <- xtable(tli[1:20, ]) 
digits(tli.table) <- matrix(0:4, nrow = 20, ncol = ncol(tli)+1) 

options(repr.vector.quote=FALSE) 

display_html(paste(capture.output(print(head(tli.table), type = 'html')), collapse="", sep="")) 


# Cell 2 ------------------------------------------------------------------ 

display_html("<span style='color:red; float:right'>hello</span>") 

# Cell 3 ------------------------------------------------------------------ 

display_markdown("[this](http://google.com)") 

# Cell 4 ------------------------------------------------------------------ 

display_png(file="shovel-512.png") 

# Cell 5 ------------------------------------------------------------------ 

display_html("<table style='width:20%;border:1px solid blue'><tr><td style='text-align:right'>cell 1</td></tr></table>") 

enter image description here

4

fand ich eine einfachere Antwort, für den ersten, einfachen Anwendungsfall.

Wenn Sie xtable aufrufen, ohne es in einen Aufruf zu drucken, dann funktioniert es vollständig. Zum Beispiel

library(xtable) 
data(cars) 
model <- lm(speed ~ ., data = cars) 
xtable(model) 
+0

Das funktioniert, weil xtable ein Objekt der Klassen '" xtable "," data.frame "' und das Anzeigesystem (repr/IRdisplay) zurückgibt, das in Irkernel in HTML konvertiert wird. –

2

In Jupyter können Sie Markdown verwenden. Stellen Sie sicher, dass Sie die Jupyter-Zelle von einer Codezelle in eine Markdown-Zelle ändern. Sobald Sie dies getan haben, können Sie einfach ein doppeltes Dollarzeichen ("$$") vor und nach dem LaTex platzieren, das Sie haben. Dann führe die Zelle aus.

Die Schritte lauten wie folgt: 1. Erstellen Sie eine Markdown-Zelle. 2. $$ einige LaTex $$ 3. Drücken Sie die Wiedergabetaste in Jupyter.

0

die folgende Funktion in der Sitzung definieren werden Objekte durch XTABLE als HTML erzeugt von XTABLE zurück anzuzeigen:

repr_html.xtable <- function(obj, ...){ 
    paste(capture.output(print(obj, type = 'html')), collapse="", sep="") 
} 

library(xtable) 
data(cars) 
model <- lm(speed ~ ., data = cars) 
xtable(model) 

Ohne die repr_html.xtable Funktion, weil das zurückgegebene Objekt ist auch der Klasse data.frame, das Anzeigesystem in der Kernel wird dieses Objekt (= HTML-Tabelle) über repr::repr_html.data.frame anzeigen.

einfach nicht print(...) das Objekt :-)

Verwandte Themen