我正在使用ggplot2绘制矩阵,然后我使用geom_text在每个点添加一些字母。现在,我想知道是否有可能以及如何覆盖地图,因为这些值代表了欧洲地区。这是我的尝试:
library(ggplot2)
mat1<- melt(vals[,t.lat]) # matrix [long,lati]
mat2<- melt(names[,t.lat]) # matrix [long,lati]
p <-ggplot(mat1, aes(lon,lat, fill=val)) + geom_raster() +
geom_text(label = mat2$val,na.rm=TRUE,size=3)+
scale_fill_gradient(low = "white", high = "red",na.value="white")
我使用此代码获得的图像是:
我想知道是否可以使用ggplot2添加等高线图来定义区域。有什么想法???
提前致谢 感谢您的评论。我将尝试制作可重复的样本(因为原始数据太多)。结构将是相同的,除了原始矩阵有一些NA。
library(ggplot2)
#Coordinates
lati <- seq(from = 72, to = 34, by =-1)
loni <- seq(from=-13,to=34,by=1)
m1 <- array(runif(length(loni)*length(lati)),dim=c(length(loni),length(lati)))
m2 <- array(c("A","B"),dim=c(length(loni),length(lati)))
t.lat <-c(length(lati):1) #reverse latitude
mat1<- melt(m1[,t.lat]) # matrix [long,lati]
mat2<- melt(m2[,t.lat])
names(mat1) <- c("lon","lat","val")
names(mat2) <- c("lon","lat","val")
p <-ggplot(mat1, aes(lon,lat, fill=val)) + geom_raster() +
geom_text(label = mat2$val,na.rm=TRUE,size=3)+
scale_fill_gradient(low = "white", high = "red",na.value="white")
然后,我想覆盖由坐标,loni和lati定义的区域,这类似于在背景中添加地图。 我希望这个例子现在的问题更加清晰。
再次感谢。