将地区名称放在地块上
Put the name of the district on the plot
我正在尝试绘制乌克兰地区的强度图,强度取决于 'value'。这是我的代码:
library(sp)
con <- url("http://biogeo.ucdavis.edu/data/gadm2/R/UKR_adm1.RData")
print(load(con))
close(con)
name<-VARNAME_1
gadm$VARNAME_1
value<-c(1:27)
gadm$VARNAME_1<-as.factor(value)
col<- colorRampPalette(c('white', 'black'))(256)
spplot(gadm, "VARNAME_1", main="Ukraine", scales = list(draw = TRUE), col.regions=col)
我的问题是:是否可以将区域名称(我在我的代码中将其作为字符向量 name
放在地图上的适当位置)。或者另一个建议使地图更清晰易懂,哪个区域具有相应的价值。
谢谢!
一种可能是用颜色来做:
colors=rainbow(length(gadm$NAME_1))
plot(gadm,col=colors)
legend("topleft",legend=gadm$NAME_1,fill=colors,cex=1.3,bty="n" )
或者您使用 text
添加名称:
colors=rainbow(length(gadm$NAME_1))
plot(gadm,col=colors)
text(coordinates(gadm), labels = gadm$NAME_1)
此解决方案使用 plot
而不是 spplot
,因此我们可以使用 text
添加标签。如果您仍想使用 spplot
,请选中
x11()
col = cm.colors(length(gadm$PID))
plot(gadm, , col=col[rev(gadm$VARNAME_1)])
text(coordinates(gadm), labels = gadm$NAME_1, cex=0.4)
或者,如果您仍想使用 spplot
,请准备好做一些额外的事情。这是 this answer
的修改
sp.label <- function(x, label) {
list("sp.text", coordinates(x), label)
}
NAME.sp.label <- function(x) {
sp.label(x, x$NAME_1)
}
draw.sp.label <- function(x) {
do.call("list", NAME.sp.label(x))
}
spplot(gadm, 'VARNAME_1', sp.layout = draw.sp.label(gadm))
我正在尝试绘制乌克兰地区的强度图,强度取决于 'value'。这是我的代码:
library(sp)
con <- url("http://biogeo.ucdavis.edu/data/gadm2/R/UKR_adm1.RData")
print(load(con))
close(con)
name<-VARNAME_1
gadm$VARNAME_1
value<-c(1:27)
gadm$VARNAME_1<-as.factor(value)
col<- colorRampPalette(c('white', 'black'))(256)
spplot(gadm, "VARNAME_1", main="Ukraine", scales = list(draw = TRUE), col.regions=col)
我的问题是:是否可以将区域名称(我在我的代码中将其作为字符向量 name
放在地图上的适当位置)。或者另一个建议使地图更清晰易懂,哪个区域具有相应的价值。
谢谢!
一种可能是用颜色来做:
colors=rainbow(length(gadm$NAME_1))
plot(gadm,col=colors)
legend("topleft",legend=gadm$NAME_1,fill=colors,cex=1.3,bty="n" )
或者您使用 text
添加名称:
colors=rainbow(length(gadm$NAME_1))
plot(gadm,col=colors)
text(coordinates(gadm), labels = gadm$NAME_1)
此解决方案使用 plot
而不是 spplot
,因此我们可以使用 text
添加标签。如果您仍想使用 spplot
,请选中
x11()
col = cm.colors(length(gadm$PID))
plot(gadm, , col=col[rev(gadm$VARNAME_1)])
text(coordinates(gadm), labels = gadm$NAME_1, cex=0.4)
或者,如果您仍想使用 spplot
,请准备好做一些额外的事情。这是 this answer
sp.label <- function(x, label) {
list("sp.text", coordinates(x), label)
}
NAME.sp.label <- function(x) {
sp.label(x, x$NAME_1)
}
draw.sp.label <- function(x) {
do.call("list", NAME.sp.label(x))
}
spplot(gadm, 'VARNAME_1', sp.layout = draw.sp.label(gadm))