用ggplot绘制热力图#R
Posted 凡柒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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所支持的数据地图素材类型
以上是关于用ggplot绘制热力图#R的主要内容,如果未能解决你的问题,请参考以下文章
R语言可视化分别使用lattice包和ggplot2包可视化热图(heatmap)并绘制热力图对应的系统树图(dendrogram)实战
R语言ggplot2可视化:使用热力图可视化dataframe数据自定义设置热力图的颜色自定添加标题轴标签热力图线框等
R可视化使用ggplot2创建样本数据热力图(heatmap)