如何在同一图上绘制多个SpatialLines:plot.new()中的错误:图边距太大

时间:2015-01-19 14:31:16

标签: r plot spatial

我需要将SpatialLines对象旋转90度和180度,然后使用旋转的SpatialLines对象绘制原始SpatialLines对象。

但是,绘图功能提供了此错误:

  

plot.new()出错:数字边距太大

我正在使用RStudio。我尝试重新启动R Session,重新启动RStudio并通过转到Plots-> Zoom Plot手动缩小绘图...但它无法解决问题。

library(sp)
library(maptools)

x <- c(1,5,4,8)
y <- c(1,3,4,5)
xy <- cbind(x,y)
xy.sp = sp::SpatialPoints(xy)
spl <- sp::SpatialLines(list(Lines(Line(xy.sp), ID=i)))

# Rotation of a SpatialLines object
spl90 <- maptools::elide(spl, rotate=90, center=apply(bbox(spl), 1, mean))
spl180 <- maptools::elide(spl, rotate=180, center=apply(bbox(spl), 1, mean))

plot(spl)
plot(spl90)
plot(spl180)

1 个答案:

答案 0 :(得分:1)

我有时也会得到这个错误,并且我最大化了我的X11绘图窗口并且它消失了(虽然我不经常使用RStudio)。即使在默认大小查看器中,您提供的代码也适用于我。此代码生成3个图。您可以使用new

中的参数par在同一个地块上制作它们
plot(spl)
par(new=TRUE)
plot(spl90)
par(new=TRUE)
plot(spl180)
par(new=FALSE)

我会尝试写一个文件,看看是否有效。