R语言绘制州市地图进行可视化分析

约定不等于承诺〃 2023-07-21 06:24 120阅读 0赞

目的

将经纬度数据对应的数值先进行聚类,然后将聚类的结果和经纬度数据进行合并,将不同的聚类结果在地图上进行热力板块展示。type是聚类的类型结果

" class="reference-link">数据展示在这里插入图片描述

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

在这里插入图片描述
聚类结果判断图,聚成4类。

聚类包加载

  1. install.packages("factoextra")

数据读取

  1. data=read.csv("C:\\Users\\Administrator\\Desktop\\Rap\\annual_conc_by_monitor_20181.csv",header=T)
  2. ## 得出有效数据:筛选列数:根据确定要研究的变量指标名称只需要选择5列:"Latitude","Longitude","Parameter_Name","Arithmetic_Mean","County_Name"
  3. head(data)
  4. subdata1<-data[,c("Latitude","Longitude","Parameter_Name","Arithmetic_Mean","State_Name")]
  5. ## 得出分析数据:筛选符合条件的数据:筛选城市、筛选研究指标
  6. # 1.在指标State_Name中筛选城市New York, Vermont, New Hampshire, Massachusetts, Connecticut 这五个地方
  7. # 2.在指标Parameter_Name中筛选 Ozone, Nitrogen dioxide, PM2. 5 local这三个变量值。
  8. str(subdata1)
  9. subdata2 <- subset(subdata1,State_Name=c("New York","Vermont","New Hampshire","Massachusetts","Connecticut"))
  10. subdata2$State=tolower(subdata2$State_Name)
  11. newdata1 = subdata2[subdata2$Parameter_Name == 'Ozone',]
  12. newdata2 = subdata2[subdata2$Parameter_Name == 'PM2.5 - Local Conditions',]
  13. newdata3 = subdata2[subdata2$Parameter_Name == 'Nitrogen dioxide (NO2)',]
  14. endata1 <- newdata1
  15. endata2 <- newdata2
  16. endata3 <- newdata3
  17. #write.csv(endata1,"Ozone.csv")
  18. #write.csv(endata2,"Nitrogen dioxide.csv")
  19. #write.csv(endata3,"PM2.5.csv")
  20. str(endata1)

聚类分析

  1. #install.packages("fpc")
  2. library(fpc)
  3. ## 聚类数据提取
  4. mydata1<-endata1[,"Arithmetic_Mean"]
  5. mydata2<-endata2[,"Arithmetic_Mean"]
  6. mydata3<-endata3[,"Arithmetic_Mean"]
  7. ## 聚类个数判断
  8. library(factoextra)
  9. df1 <- scale(mydata1)
  10. fviz_nbclust(df1, kmeans, method = "wss") + geom_vline(xintercept = 4, linetype = 2) ##得出第一个数据聚成4类
  11. df2 <- scale(mydata2)
  12. fviz_nbclust(df2, kmeans, method = "wss") + geom_vline(xintercept = 4, linetype = 2)
  13. df3 <- scale(mydata3)
  14. fviz_nbclust(df3, kmeans, method = "wss") + geom_vline(xintercept = 4, linetype = 2)
  15. ## 进行聚类
  16. kmd1=kmeans(mydata1,centers = 4)
  17. kmd2=kmeans(mydata2,centers = 4)
  18. kmd3=kmeans(mydata3,centers = 4)
  19. ##聚类结果合并
  20. cldata1<-cbind(endata1,type=kmd1$cluster) #聚类结果和原始数据合并
  21. cldata2<-cbind(endata2,type=kmd2$cluster) #聚类结果和原始数据合并
  22. cldata3<-cbind(endata3,type=kmd3$cluster) #聚类结果和原始数据合并
  23. head(cldata1)
  24. str(cldata1)
  25. cldata1$type=factor(cldata1$type)
  26. cldata2$type=factor(cldata2$type)
  27. cldata3$type=factor(cldata3$type)

地图绘制

  1. euro <- map_data("state", region = c("new york","vermont",
  2. "new hampshire","massachusetts", "connecticut"))
  3. hb_map1<-merge(euro,cldata1,by.x="region",by.y="State")
  4. hb_map2<-merge(euro,cldata2,by.x="region",by.y="State")
  5. hb_map3<-merge(euro,cldata3,by.x="region",by.y="State")
  6. ### 地图1
  7. ggplot(hb_map1,aes(x=long,y=lat,fill=type))+
  8. geom_polygon(colour="grey")+
  9. coord_map("polyconic")+ggtitle("Ozone")
  10. ### 地图2
  11. ggplot(hb_map2,aes(x=long,y=lat,fill=type))+
  12. geom_polygon(colour="grey")+
  13. coord_map("polyconic")+ggtitle("PM2.5")
  14. ### 地图3
  15. ggplot(hb_map3,aes(x=long,y=lat,fill=type))+
  16. geom_polygon(colour="grey")+
  17. coord_map("polyconic")+ggtitle("N02")

发表评论

表情:
评论列表 (有 0 条评论,120人围观)

还没有评论,来说两句吧...

相关阅读

    相关 使用R语言进行数据分析

    使用R语言进行数据分析和可视化 R语言是一种广泛应用于数据分析和统计建模的编程语言。它提供了丰富的功能和库,使得数据分析师和研究人员可以轻松地处理和可视化数据。本文将介绍如何