2013-07-09 106 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函数。