我正在使用R,并试图创建一个绘图,其中的元素位于8.5x11页面上的精确位置。例如,我需要一个点,该点距离页面左侧0.25英寸,距离页面顶部0.75英寸。当我将绘图保存为PDF时,该点很接近。但不完全在它应该在的地方。我需要调整par()中的什么设置才能让点和线处于正确的、准确的位置?
下面的代码:
pdf(file = "H:/temp/plots/demo.pdf", paper = 'letter', width=8.5, height = 11,
pagecentre = FALSE)
par(mar = c(0,0,0,0))
par(mai = c(0,0,0,0))
par(mgp = c(0,0,0))
par(oma = c(0,0,0,0))
par(omi = c(0,0,0,0))
par(pin = c(8.5, 11))
par(xaxs = 'i')
par(yaxs = 'i')
par(xpd=TRUE)
par(pty='m')
plot(x=.25, y=10.75, type = 'p', ylab="", yaxt="n", bty="n",
xlab="", xaxt = "n",
xlim = c(0,8.5), ylim = c(0,11))
lines(x=c(.25,.25), y=c(0,11))
lines(x=c(0,8.5), y=c(10.75,10.75))
dev.off()
生成具有垂直线、水平线和点的绘图。线和点应在距左侧0.25英寸和距顶部0.75英寸处交叉。这很接近,但放大时,线和点相差不到一英寸。
1条答案
按热度按时间cfh9epnr1#
最主要的是:不要使用
paper
参数。从?pdf
:paper参数设置文件中的“/MediaBox”项,默认为宽乘高。如果它设置为“special”以外的值,则指定大小的设备区域(默认情况下)以纸张大小给定的矩形为中心:如果宽度或高度小于0.1或太大而无法给予0.5英寸的总边距,则将其重置为相应的纸张尺寸减去0.5。
换句话说,如果您指定
paper
,则总是会插入一些边距,这将使事情变得混乱。下面是一个最小的代码,应该是足够的,不需要设置一切: