gpt4 book ai didi

r - 如何使用 ggplot2 包在 map 上绘制不同颜色的经纬度点?

转载 作者:行者123 更新时间:2023-12-01 11:29:01 26 4
gpt4 key购买 nike

我有一个数据框包含名为 ID、经度 (LON)、纬度 (LAT) 的变量,您可以 download from here .我使用带有以下代码的 ggplot2 包在具有相同颜色的国家 map 上绘制了一些经纬度:

library(ggplot2)
library(raster)
read.csv("station.csv")
skorea<- getData("GADM", country= "KOR", level=1)
plot(skorea)
skorea<- fortify(skorea)

ggplot()+
geom_map(data= skorea, map= skorea, aes(x=long,y=lat,map_id=id,group=group),
fill=NA, colour="black") +
geom_point(data=station, aes(x=LON, y=LAT),
colour= "red", alpha=1,na.rm=T) +
scale_size(range=c(2,7))+
labs(title= "coordinate data of seoul",
x="Longitude", y= "Latitude")+
theme(title= element_text(hjust = 0.5,vjust = 1,face= c("bold")))

我得到了以下情节 enter image description here

现在我希望其中一些点会根据它们的 ID 用不同的颜色绘制在 map 上。例如,我希望这些 ID (111141,111142,111241,111281,111301,131141,131144,131161) 为蓝色,其余 ID 为红色。我该怎么做?

最佳答案

也许:

library(raster)
library(rgeos)
library(ggplot2)
library(ggthemes)

skorea <- gSimplify(getData("GADM", country= "KOR", level=1), tol=0.001, TRUE)
skorea <- fortify(skorea)

st <- read.csv("station.csv")
st$color <- "red"
st[st$ID %in% c(111141, 111142, 111241, 111281, 111301, 131141, 131144, 131161),]$color <- "blue"

gg <- ggplot()
gg <- gg + geom_map(data=skorea, map=skorea,
aes(x=long, y=lat, map_id=id, group=group),
fill=NA, color="black")
gg <- gg + geom_point(data=st, aes(x=LON, y=LAT, color=color),
alpha=1, na.rm=TRUE)
gg <- gg + scale_size(range=c(2,7))
gg <- gg + scale_color_identity()
gg <- gg + labs(title= "coordinate data of seoul",
x="Longitude", y= "Latitude")
gg <- gg + coord_map()
gg <- gg + theme_map()
gg <- gg + theme(title= element_text(hjust = 0.5, vjust=1, face="bold"))
gg

enter image description here

关于r - 如何使用 ggplot2 包在 map 上绘制不同颜色的经纬度点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34780629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com