我在 R 会话中保存的图形和图表通常用于我的文档,我想用工作目录、文件名和日期对它们进行注释。因为我需要硬拷贝我的文档(不要问),这会让我的生活更轻松。我在想我可以在打印之前修改 pdf,但实际上我更喜欢将数字直接印在 R 中。
由于大多数时候我都是用 生成图形dev.copy2pdf()
,所以我编写了以下小函数:
# annotate PDF copy of the graph produced
copyan <- function( file= "tmp.pdf", cex= 0.75 ) {
oldpar <- par( mar= c( 0, 0, 0, 0 ), usr= c( 0, 1, 0, 1 ) )
on.exit( par( oldpar ) )
par( new= TRUE )
plot.new()
# ann is the annotation stamp:
# current working directory,
# file name, date and time.
ann <- paste( getwd(), file, Sys.time(), sep= ", " )
strh <- strheight( ann, cex= cex )
strw <- strwidth( ann, cex= cex )
# put text in the lower bottom corner,
# just at the very margin of the plot
usr1 <- par( "usr" )
text( usr1[1] + strw/2, usr1[3] + strh/2, ann, cex= cex )
dev.copy2pdf( file= file )
}
虽然它适用于我通常生成的图,但也许已经有更好的解决方案 OOB?或者,也许,上面的脚本可以改进?