在不同颜色的不同颜色的地图上绘制经度 - 纬度点?

时间:2017-08-03 12:07:07

标签: r ggplot2 ggmap

我的数据框包含名为ID,经度(LON),纬度(LAT)的变量,您可以download。我在国家地图上绘制了一些经度 - 纬度,使用不同ID的不同颜色在同一地图上使用ggplot2包,并使用以下代码:

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 id", 
                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

我想在地图上绘制Loss_ratio,以便在usertxt1中我有3个级别level1,level2,level3我想在usertxt1中为每个级别绘制3个地图。在每个地图中它应包含相应的损失率像最高值的颜色阴影的变化应该是最暗的,最小的值应该是最轻的。

1 个答案:

答案 0 :(得分:1)

你的意思是这样吗?

require(dplyr)

#filter out those without USERTXT1 value
data = filter(data,USERTXT1!="")

#some data fomatting
data$Latitude = as.numeric(data$Latitude)
data$Longitude = as.numeric(data$Longitude)
data$Loss_ratio = as.numeric(data$Loss_ratio)
data$USERTXT1 = as.factor(data$USERTXT1)


require(ggmap)
#get basemap
basemap <- get_map(location = c(lon = 0.5*(min(data$Longitude)+max(data$Longitude)),
                         lat = 0.5*(min(data$Latitude)+max(data$Latitude))),
                         color = "color",
                         source = "google",
                         maptype = "satellite",
                         zoom = 4)

#take logarithm of loss ratio to reduce dispersion
data$Loss_ratio = log(data$Loss_ratio+1)

#create ggmap object
map = ggmap(basemap,
            ylab = "Latitude",
            xlab = "Longitude")
map = map + geom_point(data=data,aes(y=Latitude,
                                     x=Longitude,
                                     color=Loss_ratio))
map = map + facet_grid(~USERTXT1)
map

enter image description here