gpt4 book ai didi

r - Knitr 在同一 block 中改变图形大小

转载 作者:行者123 更新时间:2023-12-02 04:40:26 24 4
gpt4 key购买 nike

我有一个 R 循环,它在每次迭代中使用 metafor 生成森林图。森林图每个样本有一条线,每次迭代都有不同数量的样本,所以我需要高度变化很大(目前在 2.5 到 8 英寸之间)。

我尝试了几个选项,例如 this one ,但无论我做什么,我创建的每个图形在 .pdf 文件输出中都具有相同的高度(这似乎只是使文件变成正方形),上下只有非常大的白色边距。

我还找到了关于自定义图形设备的说明 here ,但我不知道如何更改 block 中间的图形设备。我试着简单地使用 opts_chunk$set(fig.width=fheight)在每次循环迭代中,但没有运气。

移动电源

\documentclass{article}

\begin{document}

<<Mwe, echo=FALSE, results = 'asis', message='FALSE', fig.width=7,warning='FALSE'>>=

heights <- c(2.5, 8)

for(counter in 1:length(heights)) {
opts_chunk$set(fig.height=heights[counter]) #This doesn't appear to change anything
par(fin=c(7, heights[counter]) #this makes the plot have the correct height, but I get a 2.5 inch high plot vertically centered in a 7 inch high pdf.
hist(rnorm(100))

cat("Some long text which describes a lot of stuff about this graphic before making a new subsection for the next one")
}

@

\end{document}

最佳答案

\documentclass{article}

\begin{document}

<<Mwe, echo=FALSE, results = 'asis', message = F, warning = F>>=
library(knitr)
library(magrittr)

heights <- c(2.5, 8)

captions <- c("Caption 1", "Caption 2")

# Template for a plot chunk
template <- "<<plot-chunk-{{i}}, fig.height = {{ph}}, fig.cap = '{{pc}}', echo = FALSE>>=
hist(rnorm(100))
@"

# Knit the chunk and cat() the results using knit, knit_expand
knitfun <- function(i) {
knit_expand(text = template, i = i, ph = heights[i], pc = captions[i]) %>%
knit(text = ., quiet = T) %>%
cat()
}

invisible(lapply(1:2, knitfun))


@

\end{document}

我的答案基于 this回答一个类似的问题。

关于r - Knitr 在同一 block 中改变图形大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37998364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com