gpt4 book ai didi

r - TikZDevice : Add\caption{} and\label{} to TikZ diagram using R

转载 作者:行者123 更新时间:2023-12-04 06:21:55 26 4
gpt4 key购买 nike

我创建了一个 for 循环,它使用 tikzDevice 将 R 中的多个图(通过 ggplot2)输出到单个 .tex 文件中。包裹。这使得使用指向从 R 输出的 .tex 文件的单个命令(例如“diagrams.tex”)从 latex 文档中包含多个图表变得更容易:\include{diagrams} .

但是,我也想用 \begin{figure} 包裹每个 tikzpicture环境,以便我可以在每个图形中插入两行额外的行:\caption{}\label{} .

问题:有没有办法直接在输出的 .tex 文件中为每个相应的 ggplot 图像(来自我的 R 循环)包含图形包装器、标题和标签 latex 命令?

这是可重现的 R 代码,它生成一个包含 3 个 ggplots 的文件“diagrams.tex”:

require(ggplot2)
require(tikzDevice)

## Load example data frame
A1 = as.data.frame(rbind(c(4.0,1.5,6.1),
c(4.0,5.2,3.5),
c(4.0,3.4,4.3),
c(4.0,8.2,7.3),
c(4.0,2.9,6.3),
c(6.0,3.9,6.6),
c(6.0,1.5,6.1),
c(6.0,2.7,5.3),
c(6.0,2.9,7.4),
c(6.0,3.7,6.0),
c(8.0,3.9,4.2),
c(8.0,4.1,3.5),
c(8.0,3.7,5.8),
c(8.0,2.5,7.5),
c(8.0,4.1,3.5)))
names(A1) = c("state","rmaxpay","urate")

i = 2

## name output file
tikz( 'diagrams.tex' )

for (i in 2:4){ #begin LOOP

st = i*2

df = NULL
df = subset(A1, state == st , select = c(2:3))

print( # start print

ggplot(df, aes(rmaxpay,urate)) + geom_point()

) # end print

} #end LOOP

dev.off()

最佳答案

可能有一种方法可以使用绘图 Hook 来做到这一点,但实际上您可以使用 console 来做到这一点。选项和 sink() :

require(ggplot2)
require(tikzDevice)

## Load example data frame
A1 = as.data.frame(rbind(c(4.0,1.5,6.1),
c(4.0,5.2,3.5),
c(4.0,3.4,4.3),
c(4.0,8.2,7.3),
c(4.0,2.9,6.3),
c(6.0,3.9,6.6),
c(6.0,1.5,6.1),
c(6.0,2.7,5.3),
c(6.0,2.9,7.4),
c(6.0,3.7,6.0),
c(8.0,3.9,4.2),
c(8.0,4.1,3.5),
c(8.0,3.7,5.8),
c(8.0,2.5,7.5),
c(8.0,4.1,3.5)))
names(A1) = c("state","rmaxpay","urate")

i = 2
fn <- "diagrams.tex"
if(file.exists(fn)) file.remove(fn)

for (i in 2:4){ #begin LOOP

st = i*2

df = NULL
df = subset(A1, state == st , select = c(2:3))

cat("\\begin{figure}\n", file = fn, append=TRUE)
sink(fn, append=TRUE)
tikz(console = TRUE)
print( # start print
ggplot(df, aes(rmaxpay,urate)) + geom_point()
) # end print
dev.off()
sink()
cat(paste("\\caption{figure}\\label{fig:",i,"}\n",sep=""), file = fn, append=TRUE)
cat("\\end{figure}\n", file = fn, append=TRUE)

} #end LOOP

关于r - TikZDevice : Add\caption{} and\label{} to TikZ diagram using R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6445439/

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