Layering/stacking/multiple 一个图上使用符号的图表

Layering/stacking/multiple graphs on one plot using symbols

我正在尝试使用 base-r 来做到这一点

plot(x=NA, ylim = range(smokyants$elevation_m), xlim = range(smokyants[,5:42]))
for(ii in seq(1,length(ants)))
{
  points(unlist(elevation)~unlist(ants[ii]))  
  #symbols(smokyants$elevation_m, unlist(ants[ii]), circles = unlist(ants[ii]))
}

我想像上面使用 points() 那样使用 symbols()。但是当我这样做时,它会显示多个图。但是 points() 会按照我的意愿行事,并将所有内容分层到一张图上。

提前致谢。

symbols() 函数在最后调用 plot(),所以每次它都会创建一个新的绘图。您可以通过在下一个图之前添加 par(new=TRUE) 来更改此行为。例如:

data(mtcars)

with(subset(mtcars, am == 1), symbols(hp, mpg, circles = wt, xlim=c(40, 350), ylim=c(10,34)))
par(new=TRUE)
with(subset(mtcars, am == 0), symbols(hp, mpg, squares = wt, xlim=c(40, 350), ylim=c(10,34),fg="red"))

reprex package (v2.0.1)

于 2022-05-27 创建

要记住的一件事是每个图的 x- 和 y-limits 必须相同,否则两个图之间可能会出现不匹配。如果我们忘记协调轴限制,它会是这样的:

data(mtcars)

with(subset(mtcars, am == 1), symbols(hp, mpg, circles = wt, ))
par(new=TRUE)
with(subset(mtcars, am == 0), symbols(hp, mpg, squares = wt, fg="red"))

reprex package (v2.0.1)

于 2022-05-27 创建