2015-09-21 55 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(...) :-)