2015-09-21 97 views
6

我剛開始使用Jupyter與R,我想知道是否有一種很好的方式來顯示HTML或LaTeX輸出。如何在Jupyter(R)中渲染LaTeX/HTML?

下面是一些示例代碼,我想工作:

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

而不是渲染HTML,它只是顯示爲明文。有什麼方法可以改變這種行爲嗎?

+0

代碼中的對象不顯示純文本,但是HTML代碼。請澄清你的問題。 – SabDeM

+0

右鍵 - 它將HTML代碼顯示爲明文,而不是將其呈現爲HTML表格。 – Jeremy

回答

12

repr(用於設置選項)和IRdisplay的組合將適用於HTML。其他人可能知道乳膠。

# 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

我發現了一個簡單的答案,初始,簡單的用例。

如果你調用xtable而沒有將它打包在一個打印的電話中,那麼它完全有效。例如,

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

這是可行的,因爲xtable返回類「'xtable」,「data.frame」'和irkernel中就地轉換爲html的顯示系統(repr/IRdisplay)的對象。 –

2

在Jupyter中,您可以使用Markdown。確保將Jupyter單元從代碼單元更改爲Markdown單元。完成此操作後,您只需在LaTex前後放置一個雙美元符號(「$$」)即可。然後運行該單元格。

步驟如下: 1.創建Markdown單元格。 2. $$ some LaTex $$ 3.在Jupyter中按播放按鈕。

0

在會話將顯示由xtable爲html返回的對象由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) 

沒有repr_html.xtable功能,這是因爲返回的對象是類data.frame,在所述顯示系統的還內核將通過repr::repr_html.data.frame豐富的顯示該對象(= html表格)。

只是不要print(...) :-)