2015-09-21 20 views
6

Tôi mới bắt đầu sử dụng Jupyter với R và tôi tự hỏi liệu có cách nào tốt để hiển thị đầu ra HTML hoặc LaTeX hay không.Làm cách nào để hiển thị LaTeX/HTML trong Jupyter (R)?

Dưới đây là một số mã ví dụ mà tôi muốn làm việc:

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

Thay vì render HTML, nó chỉ hiển thị nó là plaintext. Có cách nào để thay đổi hành vi đó không?

+0

mã của bạn không hiển thị văn bản thuần túy nhưng mã html. Xin vui lòng làm rõ câu hỏi của bạn. – SabDeM

+0

Quyền - nó sẽ hiển thị mã HTML dưới dạng văn bản thuần túy, thay vì hiển thị mã đó dưới dạng bảng HTML. – Jeremy

Trả lời

12

Kết hợp repr (để đặt tùy chọn) và IRdisplay sẽ hoạt động đối với HTML. Những người khác có thể biết về 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

Tôi tìm thấy một câu trả lời đơn giản hơn, cho, trường hợp sử dụng đơn giản ban đầu.

Nếu bạn gọi xtable mà không cần gói nó trong một cuộc gọi để in, sau đó nó hoàn toàn hoạt động. Ví dụ:

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

Điều này làm việc vì xtable trả về một đối tượng của lớp '" xtable "," data.frame "' và hệ thống hiển thị (repr/IRdisplay) được đặt trong irkernel chuyển thành html. –

2

Trong Jupyter, bạn có thể sử dụng Markdown. Chỉ cần chắc chắn thay đổi ô Jupyter từ một ô mã thành một ô Markdown. Một khi bạn đã làm điều này bạn chỉ có thể đặt một dấu đô la đôi ("$$") trước và sau LaTex bạn có. Sau đó chạy ô.

Các bước như sau: 1. Tạo ô đánh dấu. 2. $$ một số LaTex $$ 3. Nhấn nút phát trong Jupyter.

0

Xác định các chức năng sau đây trong phiên sẽ hiển thị đối tượng được trả về bởi xtable như html tạo ra bởi 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) 

Nếu không có sự repr_html.xtable chức năng, vì đối tượng quay trở lại cũng là của lớp data.frame, hệ thống trưng bày tại hạt nhân sẽ hiển thị phong phú đối tượng đó (= bảng html) qua repr::repr_html.data.frame.

Chỉ cần không print(...) đối tượng :-)

Các vấn đề liên quan