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 创建
我正在尝试使用 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 创建