用ggplot繪制熱力圖#R


1、繪制中國地圖

library("maptools")
china_map = readShapePoly("D:/Astatistics/R/畫熱力圖數據材料/中國省級地圖空間數據文件/bou2_4p.shp")       # 讀取地圖空間數據
plot(china_map)#可以不畫

 2*、改變投影方式

library(ggplot2)
ggplot(china_map,aes(x=long,y=lat,group=group)) +
     geom_polygon(fill="white",colour="grey") +
     coord_map("polyconic")

 3、加載和拼接行政信息

x <- china_map@data          #讀取行政信息
xs <- data.frame(x,id=seq(0:924)-1)          #含島嶼共925個形狀

library(ggplot2)
china_map1 <- fortify(china_map)           #轉化為數據框

library(plyr)
china_map_data <- join(china_map1, xs, type = "full")       #合並兩個數據框

 4、制作業務工作表,保存為csv。需要NAME行(一定命名為NAME),和繪圖指標C1

其中,查看數據包里各省名稱

unique(china_map@data$NAME) 

 5、讀取業務指標,與地理數據合並

mydata <- read.csv("c:/rstudy/geshengzhibiao.csv")          #讀取指標數據,csv格式
china_data <- join(china_map_data, mydata, type="full")          #合並兩個數據框
提示:Joining by: NAME

 6、繪制地圖

ggplot(china_data, aes(x = long, y = lat, group = group,fill = zhibiao)) +
     geom_polygon(colour="grey40") +
     scale_fill_gradient(low="white",high="steelblue") +  #指定漸變填充色,可使用RGB
     coord_map("polyconic") +       #指定投影方式為polyconic,獲得常見視角中國地圖
     theme(               #清除不需要的元素
          panel.grid = element_blank(),
          panel.background = element_blank(),
          axis.text = element_blank(),
          axis.ticks = element_blank(),
          axis.title = element_blank(),
          legend.position = c(0.2,0.3)
          )

 7*、計算經緯度平均值添加標簽

midpos <- function(x) mean(range(x,na.rm=TRUE)) #取形狀內的平均坐標
centres <- ddply(china_data,.(province),colwise(midpos,.(long,lat)))

ggplot(china_data,aes(long,lat))+       #此處語法與前面不同,參考ggplot2一書P85
     geom_polygon(aes(group=group,fill=zhibiao),colour="black")+
     scale_fill_gradient(low="white",high="steelblue") +
     coord_map("polyconic") +
     geom_text(aes(label=province),data=centres) +
     theme(
          panel.grid = element_blank(),
          panel.background = element_blank(),
          axis.text = element_blank(),
          axis.ticks = element_blank(),
          axis.title = element_blank()
          )

 8*、讀取省會城市坐標添加標簽

province_city <- read.csv("D:/Astatistics/R/畫熱力圖數據材料/省會坐標.csv")  #讀取省會城市坐標

ggplot(china_data,aes(long,lat))+
     geom_polygon(aes(group=group,fill=zhibiao),colour="grey60")+
     scale_fill_gradient(low="white",high="steelblue") +
     coord_map("polyconic") +
 geom_text(aes(x = jd,y = wd,label = province), data =province_city)+
     theme(
          panel.grid = element_blank(),
          panel.background = element_blank(),
          axis.text = element_blank(),
          axis.ticks = element_blank(),
          axis.title = element_blank()
          )
參考鏈接:
1)http://blog.sina.com.cn/s/blog_6bc5205e0102vma9.html #R筆記1:ggplot繪制商務圖表--中國分省熱力地圖
2)https://site.douban.com/182577/widget/notes/10568279/note/257898418/ #R for map (2上)
3)http://www.sohu.com/a/145415161_572440 #R語言可視化-關於ggplot所支持的數據地圖素材類型

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM