绘制中国热力地图

热力地图

在这里插入图片描述

数据展示情况

在这里插入图片描述
在这里插入图片描述

程序代码

## 库包调用

library(mapdata)
library(ggplot2) 
library(maps) 
library(mapdata)
library(readxl)
library(ggplot2)

##  数据读取

setwd("C:\\Users\\Administrator\\Desktop\\map")
data=read_excel("PMDiff2017.xlsx")
data=read.csv("PMDiff2017.csv")
data=as.data.frame(data)
str(data)
data1=data[,c(5,6,8,10,12,14)]
str(data1)
data1 <- na.omit(data1)
## 数据筛选

dat1=subset(data1,c(上午相对差异2.5>=0.5,上午相对差异2.5<=-0.5)) 
str(dat1)  ##筛选出有42109条满足

dat2=subset(data1,c(下午相对差异2.5>=0.5,下午相对差异2.5<=-0.5)) 
str(dat2)  ##筛选出有47924条满足

dat3=subset(data1,c(上午相对差异10>=0.5,上午相对差异10<=-0.5))
str(dat3) ##筛选出有39787条满足

dat4=subset(data1,c(下午相对差异10>=0.5,下午相对差异10<=-0.5)) 
str(dat4)##筛选出有41450条满足

## 数据统计

summary(dat1$上午相对差异2.5)
dat1$相对差异2.5[dat1$上午相对差异2.5<=0.57] <-0.57 #"小于0.57"
dat1$相对差异2.5[dat1$上午相对差异2.5<=0.69&dat1$上午相对差异2.5>0.57] <-0.69 #"0.57到0.69之间"
dat1$相对差异2.5[dat1$上午相对差异2.5<=0.89&dat1$上午相对差异2.5>0.69] <-0.89 #"0.69到0.89之间"
dat1$相对差异2.5[dat1$上午相对差异2.5<=5.03&dat1$上午相对差异2.5>0.89] <-0.53 #"0.89到0.53之间"



## 不同位置计数
options(digits = 5)
aax=dat1
aax$freq <- paste(aax$slon,aax$slat,sep=',')
str(dat1$slon)
dax=as.data.frame(table(aax$freq),stringsAsFactors = F)
dax <- dax[-1404,]
tail(dax)
re <- strsplit(dax$Var1,",")
for(i in 1:dim(dax)[1])
 {
dax$slon[i] <- as.numeric(re[[i]][1])
dax$slat[i] <- as.numeric(re[[i]][2])
}


write.csv(dax,"test1.csv")


head(dax)
str(dax)
tail(AA)
options(digits = 5)
AA$slon=as.numeric(as.character(AA$slon))
AA$slat=as.numeric(as.character(AA$slat))
str(AA)


gsub('"','', dax1$slon) 
gsub('"', '', dax1$slat)


options(stringsAsFactors = TRUE)


datexpr2=as.data.frame(lapply(dax1$slon,as.numeric))


dax1$slon=as.numeric(as.factor(dax1$slon))
dax1$slat=as.numeric(as.factor(dax1$slat))
 
str(dax1)
## 地图绘制

library(mapdata)
str(dax1)
dax1=dax
summary(dax1$Freq)
dax1$group[dax1$Freq<=7] <-"n<=7"
dax1$group[dax1$Freq>7&dax1$Freq<=13] <-"7<n<=13"
dax1$group[dax1$Freq>13&dax1$Freq<=25] <-"13<n<=25"
dax1$group[dax1$Freq>25&dax1$Freq<=188] <-"25<n<=188"

head(dax1$group)
order(table(dax1$group))
qplot(slon, slat,data=dax,main="上午相对差异2.5")+
borders("china")+scale_colour_gradient(low="green",high="red")+ xlab ( "" ) + ylab ( "" )


qplot(slon,slat,data=dax1,colour=Freq)+
borders("china")+scale_colour_gradient(low="green",high="red")+
coord_map(projection="mollweide")

在这里插入图片描述

参考联系网站:https://blog.csdn.net/tandelin/article/details/87719623

猜你喜欢

转载自blog.csdn.net/tandelin/article/details/105178489