1

我喜欢一辉的 knitr 包,从教程中我知道它可以将 R 放入 html 文档中。我想另辟蹊径——我想将一些 html 放入网格图形对象中。这在 knitr 或任何其他库中是否可行?具体来说,我正在寻找一种方法:

  • 使用 HTML 设置文本样式(主要是基本的 CSS 和表格)

  • 把它包起来

  • 使用网格图形排列/插入 grob,将其与其他 grobs(ggplot 图表等)结合使用

我搜索了 knitr 列表并查看了网格图形。它有一个 textGrob 功能,但格式化选项对于我正在寻找的内容不够强大。有一个 SO question在球场上,但没有涵盖我正在寻找的内容。这是一个愚蠢的可重现示例,它模仿了我的真实文档的结构。

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 的文本替换下面那些空的矩形 grobs 之一。

chart_grob

谢谢!

4

1 回答 1

3

目前尚不清楚“HTML grob”是什么意思。您的代码中没有 HTML 格式的对象。当然,有些函数可以生成 HTML,您可以将该文本发送到grid.text调用并显示 HTML。但是,我担心您打算让某些包将 HTML 浏览器一样显示为格式化表格。Hmisc 中的html函数将其输出发送到真实的浏览器。latex在 Hmisc 中是专为显示而设计的。'gridExtra' 中的tableGrob函数不会将 HTML 作为格式规范。xtable通过检查代码并试验print.xtablextable 包,您可能会走得更远,因为它能够提供 HTML 输出。您还可以探索latexTabular'Hmisc' 中的tabular函数或 'tables' 包中的函数。

于 2013-07-09T07:06:27.493 回答