library(maptools)
library(ggplot2)
#data <- read.csv("C:\\map\\data.csv",header=TRUE,sep=",")
china_map=readShapePoly('C:\\map\\bou2_4p.shp')
plot(china_map)
theme_set(theme_bw())
ggplot(china_map,aes(x=long,y=lat,group=group)) +geom_polygon(fill="white",colour="grey")#+coord_map("orthographic")
?coord_map
x <- china_map@data #读取行政信息
xs <- data.frame(x,id=seq(0:924)-1) #含岛屿共925个形状
china_map1 <- fortify(china_map) #转化为数据框
library(plyr)
china_map_data <- join(china_map1, xs, type = "full")
unique(china_map@data$NAME)
#######################
shuju<-read.csv('C:\\map\\shuju.csv',header = T)#相应的数据读入,改变数据的值即可
#######################
china_data<-join(china_map_data,shuju,type="full")
ggplot(china_data, aes(x = long, y = lat, group = group, fill = zhibiao))+
geom_polygon(colour="grey40")+scale_fill_gradient(low="white",high="steelblue")+ #指定渐变填充色,可使用RGBcoord_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)
)
midpos <- function(x) mean(range(x,na.rm=TRUE))#取形状内的平均坐标
centres <- ddply(china_data,.(NAME),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") +
geom_text(aes(label=NAME),data=centres)+
theme(
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank()
)
province_city <-read.csv("C:\\map\\data.csv",header=TRUE,sep=",")
ggplot(china_data,aes(long,lat))+
geom_polygon(aes(group=group,fill=zhibiao),colour="grey60")+ylim(c(18,55))+
scale_fill_gradient(low="white",high="red",name="店铺数量")+
geom_text(aes(x = Jd,y = Wd,label = 城市), data =province_city)+
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.1,0.2)
)+geom_point(aes(Jd,Wd),data = province_city,size=1)