gpt4 book ai didi

r - 在 R 中绘制没有边距的 map

转载 作者:行者123 更新时间:2023-12-04 10:49:42 24 4
gpt4 key购买 nike

我试图摆脱使用 R 中的“ map ”包生成的 map 的边距。我通过设置 par(mar=c(0,0,0,0)) 获得了一些方法。并在 map() 中使用选项 border=0功能。但与例如相比散点图 mar=c(0,0,0,0)还有很多额外的空间。这是生成示例 map 的一些代码,以及用于比较的常规散点图。

library(maps)
x <- sample(360, 10)-180
y <- sample(160, 10)-80
x.boundary <- c(-180, 180, 0, 0)
y.boundary <- c(0, 0, -80, 80)

pdf("map.tmp.pdf", width=9, height=4)
par(mar=rep(0,4))
map("world", border=0, ylim=c(-80, 80), fill=TRUE, bg="gray", col="white")
points(x, y, pch=19, col="blue")
points(x.boundary, y.boundary, pch=19, col="red")
# map.axes()
dev.off()

pdf("scatter.tmp.pdf", width=9, height=4)
par(mar=rep(0,4))
plot(x, y, xlim=c(-180, 180), ylim=c(-80, 80), pch=19, col="blue")
points(x.boundary, y.boundary, pch=19, col="red")
dev.off()

如果您取消注释 map.axes()函数,您可以看到,即使在名义上抑制了边距,也为轴保留了空间。

任何想法都非常感谢,这一直困扰着我多年。

最佳答案

在 map 功能中, mar 再次重置(因此不遵循常规设置)。您可以在 map 功能中设置边距(请参阅 ?map )。这给了你想要的:

map("world", border=0, ylim=c(-80, 80), fill=TRUE, 
bg="gray", col="white",mar=rep(0,4))

在旁注中,如果您更改 par 的常规设置,您可以执行以下操作
oldpar <- par(mar=rep(0,4)
... some plotting ...
par(oldpar)

将参数设置回原来的。如果您编写自己的自定义绘图函数,这将特别有用。

关于r - 在 R 中绘制没有边距的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5168721/

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