首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:用彩色强度在地图上画点。

R:用彩色强度在地图上画点。
EN

Stack Overflow用户
提问于 2015-02-25 16:54:03
回答 1查看 1.4K关注 0票数 0

我在R中有一个数据集,有数以千计的地理定位观测,我必须把它们绘制在地图上。我成功地使用以下代码绘制了单个点:

代码语言:javascript
复制
originale<-read.table("file.txt", header=TRUE,sep=";")
require(ggplot2)
require(ggmap)
map <- get_map(location = c(lon=13.781693, lat=45.623124), zoom = 14, maptype = "terrain",source = "google")
p <- ggmap(map)
p_punti <- p + geom_point(data=originale, aes(x=lon, y=lat),size=5)
plot(p_punti)

现在,我想用一组5-6种颜色来绘制它们,根据在这一点上观察到的数目。就像我在CartoDB:http://i.stack.imgur.com/Be1DL.png上创建的这个

用CartoDB绘制的地图确实太近似了:我需要为每种颜色设定我自己的范围。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-02 20:58:31

我找到了一个工作解决方案,在一个新的数据中计算每一次观测的重复次数,然后使用geom_point和scale_colour_discrete以及中断绘制映射。

ThanksJosh和Ista为您的建议!

下面是代码:

代码语言:javascript
复制
require(plyr)
df <-read.table("input.txt", header=TRUE,sep=";")

##selection
original <- df[(df$Year==2013),] #

##count recurrence 
conteggi2 <- ddply(original, .(original$lon, original$lat), nrow)
names(conteggi2) <- c("lon", "lat", "Freq")

##sort
conteggi2 <- conteggi2[with(conteggi2, order(Freq)), ]

##Classification
verdi <- conteggi2$Freq <= 5
conteggi2$classe[verdi] <- "1-5"
gialli <- conteggi2$Freq > 5 & conteggi2$Freq <= 20
conteggi2$classe[gialli] <- "6-20"
rossi <- conteggi2$Freq > 20 & conteggi2$Freq <= 50
conteggi2$classe[rossi] <- "21-50"
neri <- conteggi2$Freq > 50 & conteggi2$Freq <= 500
conteggi2$classe[neri] <- "51-500"

##plot map
require(ggplot2)
require(ggmap)
library(reshape2)
Trieste <- qmap(location = c(lon=13.781693, lat=45.623124), zoom = 13,
               legend = "topleft", color="bw")#maptype = "terrain",
Trieste1 <- Trieste +
        geom_point(aes(x = lon, y = lat, colour = classe, 
                       title='Year 2013'),
                        data = conteggi2) +
        guides(size=FALSE) + #remove useless label
        scale_colour_discrete(name="Legend Title",
                              breaks=c("1-5","6-20","21-50", "51-500"))
plot(Trieste1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28724891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档