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)
结果:
我想将页面左侧的几个图与右侧的描述对齐。我理想的输出是这样的,一页最多 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)
结果: