如何在一个面板和一个图例中组合 shapefile 的绘图?

问题描述 投票:0回答:1

如果我们从 terra 包中获得这个形状文件:

 library(terra)
 v <- vect(system.file("ex/lux.shp", package="terra"))

我把剧情分成三部分:

 plot(v, "NAME_1", col=rainbow(25), border=c("gray"),ylim=c(49.5, 50))
 plot(v, "NAME_1", col=rainbow(25), border=c("gray"),ylim=c(50, 50.5))
 plot(v, "NAME_1", col=rainbow(25), border=c("gray"),ylim=c(49, 49.5))

如何用一个图例在一个面板中显示三个图?

r shapefile terra
1个回答
0
投票

你可以做

library(terra)
v <- vect(system.file("ex/lux.shp", package="terra"))

par(mfrow=c(1,3))
plot(v, "NAME_1", col=rainbow(25), border=c("gray"),ylim=c(49.5, 50), legend=F, mar=1)
plot(v, "NAME_1", col=rainbow(25), border=c("gray"),ylim=c(50, 50.5), legend=F, mar=1)
plot(v, "NAME_1", col=rainbow(25), border=c("gray"),ylim=c(49, 49.5), plg=list(x="bottomright"), mar=1)

或者像这样的东西

 library(terra)
 v <- vect(system.file("ex/lux.shp", package="terra"))

 layout(rbind(1:4), c(1, 1, 1, 3/4))
 plot(v, "NAME_1", col=rainbow(25), border=c("gray"),ylim=c(49.5, 50), legend=F, mar=1)
 plot(v, "NAME_1", col=rainbow(25), border=c("gray"),ylim=c(50, 50.5), legend=F, mar=1)
 plot(v, "NAME_1", col=rainbow(25), border=c("gray"),ylim=c(49, 49.5), legend=F, mar=1)
 plot(v, "NAME_1", col=rainbow(25), border=c("gray"),ylim=c(51, 51.5), mar=1, axes=F, plg=list(x="topleft", cex=1.5))

© www.soinside.com 2019 - 2024. All rights reserved.