2013-07-09 38 views
1

我喜歡Yihui的knitr包,我從the tutorials知道它可以把R放到html文件中。我想以另一種方式 - 我想將一些HTML放入網格圖形對象中。這是可能的knitr,或任何其他圖書館?具體來說,我正在尋找一種方式來:輸出與R的網格圖形兼容的HTML grobs的庫?

  • 樣式文本使用HTML(基本的CSS和表格,主要是)

  • 把它包起來的GROB

  • 排列/插入GROB使用網格圖形,結合其他grobs(ggplot圖表等)

我在knitr列表上搜索並查看網格圖形。它有一個textGrob函數,但格式化選項對於我所需要的不夠強大。有一個SO問題是in the ballpark,但不包括我在找什麼。這是一個愚蠢的可重複的例子,模仿我真實文檔的結構。

library(gridExtra)  
#minimal valid object 
rect = rectGrob() 

text1 <- textGrob(
    label = "textGrobs let you write text" 
,x = unit(0.5, "npc"), y = unit(0.5, "npc") 
,just = "centre" 
,gp = gpar(col = "black", fontsize = 12) 
) 

text2 <- textGrob(
    label = "but is there a graphics object that takes HTML?" 
,x = unit(0.5, "npc"), y = unit(0.5, "npc") 
,just = "centre" 
,gp = gpar(col = "black", fontsize = 12) 
) 

#first split the box 
top_box <- arrangeGrob(text1, text2, ncol = 2) 

#put that together into a column 
left_column <- arrangeGrob(
    top_box, rect, rect 
,nrow = 3 
,heights = c(1, 2, 2) 
) 

grid.arrange(left_column, rect, widths = c(4/5, 1/5), ncol = 2) 

我想用一些HTML文本替換其中一個空矩形區域。

chart_grob

謝謝!

+1

也許你可以看看'gridSVG'包。 – agstudy

回答

3

目前還不清楚你的意思是「一個HTML grob」。代碼中沒有HTML格式的對象。當然,有些功能可以生成HTML,您可以將該文本發送到grid.text調用並顯示HTML。然而,我擔心你打算讓一些軟件包顯示HTML瀏覽器 - 就像格式化的表格一樣。 Hmisc中的html函數將其輸出發送到真實的瀏覽器。 Hmisc中的latex是爲顯示而設計的。 'gridExtra'中的tableGrob函數不會將HTML用作格式規範。您可以通過檢查代碼並使用xtable包中的xtableprint.xtable進行試驗,因爲它能夠提供HTML輸出。您還可以瀏覽'Hmisc'中的latexTabular函數或'表'包中的tabular函數。