R Markdown - PDF 输出中绘图旁边的说明

R Markdown - Description next to plot in PDF output

我想将页面左侧的几个图与右侧的描述对齐。我理想的输出是这样的,一页最多 5 个图:

这些情节是动态的,基于闪亮应用程序中的用户输入。这是我如何生成图表的示例(目前使用 fsmb 作为 radarchart 函数,但考虑改用 ggplot2)。

library(fmsb)
library(knitr)

opts_chunk$set(echo=FALSE)

df <- data.frame(
  row.names=c("Max", "Min", "Data"),
  rbind(
    rep(5, 6),
    rep(1, 6),
    sample(1:5, 6, replace=TRUE)
  )
)

radarchart(
  df,
  vlabels=c(1,2,3,4,5,6), 
  caxislabels=c(1,2,3,4,5)
)

图表很好,但我遇到的问题是对齐方式。我试图将图表另存为 png 并将其添加到 table,但它根本无法正常工作。

png("plot1.png", width=400, height=400)
radarchart(
  df,
  vlabels=c(1,2,3,4,5,6), 
  caxislabels=c(1,2,3,4,5)
)
dev.off()

dat <- data.frame(
  Figure=c("1"),
  Description=c("Short description"))
dat$Figure <- c(sprintf("![](%s){width=200px}", "plot1.png"))
kable(dat)

我希望能够排列图形而不必先保存 png,但这是迄今为止我设法获得所需输出的最接近结果。关于如何实现这一点有什么想法吗?

也许我可以帮助你。我使用您示例中的数据并执行此操作:

op <- par(mar=c(1, 2, 2, 1),mfrow=c(2, 2))
radarchart(
    df,
    vlabels=c(1,2,3,4,5,6), 
    caxislabels=c(1,2,3,4,5)
)
plot(NA, xlim = c(-5, 5), ylim=c(-5,5), axes = F, ann = F)
text(x = 0, y = 0, "good plot\nanother line\ngood plot", cex = 2)
radarchart(
    df,
    vlabels=c(1,2,3,4,5,6), 
    caxislabels=c(1,2,3,4,5)
)
plot(NA, xlim = c(-5, 5), ylim=c(-5,5), axes = F, ann = F)
text(x = 0, y = 0, "your plot description\nmay be on 2 lines", cex = 2)
par(op)

结果: