2015-09-21 19 views
6

Ho appena iniziato a utilizzare Jupyter con R, e mi chiedo se c'è un buon modo per visualizzare l'output HTML o LaTeX.Come eseguire il rendering di LaTeX/HTML in Jupyter (R)?

Ecco qualche esempio di codice che desidero lavorato:

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

Invece di rendere il codice HTML, solo lo visualizza come testo in chiaro. C'è un modo per cambiare questo comportamento?

+0

il codice fa visualizza il testo semplice ma codice html. Per favore, chiarisci la tua domanda. – SabDeM

+0

Right: visualizza il codice HTML come testo semplice, anziché renderlo come tabella HTML. – Jeremy

risposta

12

Una combinazione di repr (per le opzioni di impostazione) e IRdisplay funzionerà per HTML. Altri potrebbero sapere del lattice.

# 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

ho trovato una risposta più semplice, per il semplice caso dell'uso iniziale.

Se si chiama xtable senza inserirlo in una chiamata per la stampa, quindi funziona completamente. Ad esempio,

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

Funziona perché xtable restituisce un oggetto di classe '" xtable "," data.frame "' e il sistema di visualizzazione (repr/IRdisplay) che in place in irkernel converte in html. –

2

In Jupyter, è possibile utilizzare Markdown. Basta essere sicuri di cambiare la cella Jupyter da una cella di codice in una cella di Markdown. Una volta fatto questo, puoi semplicemente inserire un doppio segno di dollaro ("$$") prima e dopo il LaTex che hai. Quindi esegui la cella.

I passaggi sono i seguenti: 1. Creare una cella di svalutazione. 2. $$ alcuni LaTex $$ 3. Premere il pulsante di riproduzione all'interno di Jupyter.

0

Definire la seguente funzione nella sessione visualizzerà oggetti restituiti da xtable come html generato da xtable:

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) 

Senza la funzione repr_html.xtable, perché l'oggetto restituito è anche di classe data.frame, il sistema di visualizzazione nella il kernel mostrerà l'oggetto (= tabella html) tramite repr::repr_html.data.frame.

Basta non print(...) non l'oggetto :-)

Problemi correlati