尝试删除所有边距,以使绘图区域包含整个图形

| 我正在尝试删除R中图形的所有边距和“图形区域”,以使图形区域包含整个图形设备。我以为下面的代码可以做到,但是我的情节周围仍然有一个边框(左/底较宽,顶/右较细)。谢谢
par(oma=c(0, 0, 0, 0))
par(mar=c(0, 0, 0, 0))
par(plt=c(0, 1, 0, 1))
以为我会加图片来显示我的进度。 xaxs和yaxs几乎删除了顶部和右侧的所有边框-左侧和底部仍然有边框。 我脚本的相关部分如下。
png(\"Test.png\", 
     width = 256, height = 256,
     units = \"px\", pointsize = 6.4, 
     bg = \"black\", res = NA)

par(mar=c(0, 0, 0, 0), xaxs=\'i\', yaxs=\'i\')


smoothScatter(lhb$px, lhb$pz, nrpoints=0, xlim=c(-3,3), ylim=c(0,5), 
    main=\"\", xlab=\"\", ylab=\"\", axes=FALSE, 
    colramp=colorRampPalette(c(\"black\", \"#202020\", \"#736AFF\", \"cyan\", \"yellow\", \"#F87431\", \"#FF7F00\", \"red\", \"#7E2217\"))
    )

segments(.83, 1.597, .83, 3.436, col = par(\"fg\"), lty = par(\"lty\"), lwd = par(\"lwd\"))
segments(-.83, 1.597, -.83, 3.436, col = par(\"fg\"), lty = par(\"lty\"), lwd = par(\"lwd\"))
segments(-.83, 3.436, .83, 3.436, col = par(\"fg\"), lty = par(\"lty\"), lwd = par(\"lwd\"))
segments(-.83, 1.597, .83, 1.597, col = par(\"fg\"), lty = par(\"lty\"), lwd = par(\"lwd\"))


dev.off()
    
已邀请:
一个问题是根本不了解ѭ2的作用。从3英镑起,我们有:
 ‘plt’ A vector of the form ‘c(x1, x2, y1, y2)’ giving the
      coordinates of the plot region as fractions of the current
      figure region.
因此,如果您做
par(plt=c(1, 1, 1, 1))
,则绘图区域的大小为零,因此这似乎不是可行的方法。这是因为图形区域包含绘图区域。 该图似乎覆盖了整个区域,没有任何空白:
op <- par(mar = rep(0, 4))
plot(1:10)
par(op)
它很好地覆盖了它,您看不到轴或盒子: 假设默认值为0外部边距(
oma
)。这是您要找的东西吗? 我们可以看到,如上所述,仅调整绘图边距,我们还更改了
plt
参数作为副作用:
> par(\"plt\")
[1] 0.1173174 0.9399106 0.1457273 0.8828467
> op <- par(mar = rep(0, 4))
> par(\"plt\")
[1] 0 1 0 1
> par(op)
> par(\"plt\")
[1] 0.1173174 0.9399106 0.1457273 0.8828467
表示仅设置绘图边距就足以获得涵盖整个设备的绘图/图形区域。 当然,还有一些内部填充可以确保轴的范围比
x
y
坐标中的数据范围稍大。但是你可以用
xaxs
yaxs
控制它---见
?par
更新:正如OP所示,他们正在尝试制作没有利润的图形,我可以提供一个可重现的示例:
set.seed(1)
dat <- matrix(rnorm(100*100), ncol = 100, nrow = 100)

layout(matrix(1:2, ncol = 2))
image(dat)
op <- par(mar = rep(0, 4))
image(dat)
par(op)
layout(1)
比较一下: 并仅显示整个绘图区域:     
尝试将裁剪区域参数\'xpd \'设置为NA(裁剪到设备)。 par(xpd = NA)     

要回复问题请先登录注册