前言
我是张杰,不会唱歌的张杰!
R语言之前学过几天,那是将近一两年前的事情。最近发现要绘制地图系列图表,发现还是R语言比较方便,虽然我之前也使用过Matlab绘制中国地图系列,还拿着Matlab绘制的中国地图系列进入去年七月的阿里巴巴数据可视化大赛。
很感谢我的队友小魔方-杜雨,他总结了不少资料。我绘制的这些图表就是在小魔方代码的基础上,学习再调整、添加的。我这几天也重新看了R语言的书籍,打算也好好研究一下R语言数据可视化。下面这些是我的拙作,还望诸位不吝赐教!
另外,今天也是五四青年节,祝各位青年朋友们节日快乐!
注释:中国包括台湾、香港、澳门和南沙群岛等地区,为保证展示效果,所以只展示了中国的主体部分。
library(maptools)
library(ggplot2)
library(plyr)
setwd("C:/Users/JieZhang/Desktop/China_AreaScatter/") #确定文件路径
china_map <-readShapePoly("bou2_4p.shp") # 读取地图空间数据
china_map <- fortify(china_map) #转化为数据框
china_data<-read.csv("chinaprovincecity.csv") #读取省会城市坐标
ggplot()+
geom_polygon(data=china_map, aes(x=long, y=lat, group=group),fill="grey95", colour="grey60",size=0.25)+ #中国地图
geom_point(data=china_data, aes(x = jd,y = wd),size=4,fill="black", alpha=1,shape=21, colour="white")+ #散点图
coord_map("polyconic") +
theme_nothing()#图表元素设定
library(ggplot2)
library(ggmap)
library(plyr)
library(maptools)
setwd("C:/Users/JieZhang/Desktop/China_AreaScatter/")
china_map0<-readShapePoly("bou2_4p.shp")
x <- china_map0@data #S4的意思是指S语言的版本4.
#默认情况下,`$`可以用于获取dataframe或者list里面的某个变量;
#对于 S4 object,`@` 可以提取出内容(slot)
xs <- data.frame(id=row.names(x),x)
china_map<- fortify(china_map0)
china_map_data <- join(china_map, xs, type ="full")
mydata <-read.csv("geshengzhibiao.csv")
china_data <- join(china_map_data, mydata,type="full")
province_city <-read.csv("chinaprovincecity.csv")
newdataA<-subset(province_city,city=="北京")
newdataB<-subset(province_city,city!="北京")
N<-nrow(newdataB)
province_city<-province_city[1:N+1,]
soux<-rep(newdataA$jd,N)
souy<-rep(newdataA$wd,N)
tagx<-newdataB$jd[1:N]
tagy<-newdataB$wd[1:N]
dataD<-data.frame(soux,souy,tagx,tagy)
dataE<-newdataB[1:N,1:2]
dataF<-cbind(dataD,dataE)
ggplot()+
geom_polygon(data=china_data,aes(x=long,y=lat,group=group),fill="grey95",colour="grey60",size=0.25)+
geom_point(data =province_city,aes(x=jd,y=wd),size=4,shape=21, fill="white")+
geom_segment(data=dataF,aes(x=soux,y=souy,xend=tagx,yend=tagy,colour="black"),colour="black")+
coord_map("polyconic") +
theme_nothing()
library(maptools)
library(ggplot2)
library(plyr)
library("scatterpie")
setwd("C:/Users/JieZhang/Desktop/China_AreaScatter/")
china_map <-readShapePoly("bou2_4p.shp") # 读取地图空间数据
china_map1 <- fortify(china_map) #转化为数据框
mydata <-read.csv("geshengzhibiao.csv") #读取业务数据
province_city <-read.csv("chinaprovincecity.csv") #读取省会城市坐标
china_data <- join(province_city, mydata,type="full") #合并两个数据框
jd<-china_data$jd
wd<-china_data$wd
N<-nrow(china_data)
Dmin<-10
Dmax<-50
P1<-round(runif(N,Dmin,Dmax))
P2<-round(runif(N,Dmin,Dmax))
mynewdata<-data.frame(jd=china_data$jd,wd=china_data$wd,P1=round(runif(N,10,50)),P2=round(runif(N,10,50)))
color<-c("black","gray100")
ggplot()+
geom_polygon(data=china_map1, aes(x=long, y=lat, group=group),fill="grey95", colour="grey60",size=0.25)+ #
geom_scatterpie(aes(x=jd,y=wd,r=1),data=mynewdata,cols=colnames(mynewdata)[3:4],color="black")+
coord_map("polyconic") +
scale_fill_manual(values=color)+
guides(fill=guide_legend(label.position ="top"))+
theme(
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
legend.direction="horizontal",
legend.position=c(0.3,0.3),
legend.box="horizontal",
legend.text.align=0 )
library(maptools)
library(ggplot2)
library(plyr)
setwd("C:/Users/Jie Zhang/Desktop/China_AreaScatter/")
china_map0 <-readShapePoly("bou2_4p.shp") #读取地图空间数据
china_map <- fortify(china_map0) #转化为数据框
china_data<-read.csv("chinaprovincecity.csv") #读取省会城市坐标
N<-nrow(china_data)
Dmin<-10
Dmax<-50
P1<-round(runif(N,Dmin,Dmax))
P2<-round(runif(N,Dmin,Dmax))
mynewdata<-cbind(china_data$jd,china_data$wd,P1,P2)
n<-round(N/3)
Shape0<-c(rep(1,n)*1,rep(1,n)*2,rep(1,N-n*2)*3)
Vmin<--3
Vmax<-3
vx<-round(runif(N,Vmin,Vmax))
vy<-round(runif(N,Vmin,Vmax))
#china_data<-data.frame(china_data,Shape0)
#china_data<-as.data.frame(china_data)
china_data<-cbind(china_data,Shape0,vx,vy)
china_data$Shape<-cut(china_data$Shape0,breaks=c(0,1.5,2.5,3.5),labels=c("Cluster1","Cluster2","Cluster3"),include.lowest=TRUE,order=TRUE)
ggplot()+
geom_polygon(data=china_map, aes(x=long, y=lat, group=group),fill="grey95", colour="grey60",size=0.25)+ #中国地图
geom_segment(data=china_data,aes(x = jd,y = wd,xend = jd+vx, yend =wd+vy), arrow = arrow(length = unit(0.2, "cm")), size = 0.5)+ #向量箭头
geom_point(data=china_data, aes(x = jd,y = wd),size=2,fill="white", alpha=1, shape=21,colour="black")+ #散点图
coord_map("polyconic") +
theme_nothing() #图表元素设定
library(maptools)
library(ggplot2)
library(plyr)
setwd("C:/Users/Jie Zhang/Desktop/China_AreaScatter/")
china_map <-readShapePoly("bou2_4p.shp") # 读取地图空间数据
china_map1 <- fortify(china_map) #转化为数据框
mydata <-read.csv("geshengzhibiao.csv") #读取业务数据
province_city <-read.csv("chinaprovincecity.csv") #读取省会城市坐标
china_data <- join(province_city, mydata,type="full") #合并两个数据框
ggplot()+
geom_polygon(data=china_map1,aes(x=long, y=lat, group=group), fill="grey95",colour="grey60",size=0.25)+ #中国地图
geom_point(data=china_data, aes(x = jd,y = wd,size=zhibiao),fill="black", alpha=1,shape=21, colour="white")+ #气泡图
scale_size_area(max_size=8)+
coord_map("polyconic") +
theme(
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
legend.direction="vertical",
legend.position=c(0.3,0.3),
legend.box="vertical",
legend.text.align=0
)
library(maptools)
library(ggplot2)
library(plyr)
setwd("C:/Users/JieZhang/Desktop/China_AreaScatter/")
china_map <- readShapePoly("bou2_4p.shp") # 读取地图空间数据
china_map1 <- fortify(china_map) #转化为数据框
mydata <-read.csv("geshengzhibiao.csv") #读取业务数据
province_city <-read.csv("chinaprovincecity.csv") #读取省会城市坐标
china_data <- join(province_city, mydata, by="province")#type="full") #合并两个数据框
jd<-china_data$jd
wd<-china_data$wd
N<-nrow(china_data)
P1<-round(runif(N,10,50))
P2<-round(runif(N,10,50))
mynewdata<-cbind(jd=china_data$jd,wd=china_data$wd,P1=round(runif(N,10,50)),P2=round(runif(N,10,50)))
Shape0<-c(rep(1,12)*1,rep(1,12)*2,rep(1,N-24)*3)
china_data<-cbind(china_data,Shape0)
china_data$Shape<-cut(china_data$Shape0,breaks=c(0,1.5,2.5,3.5),labels=c("Cluster1","Cluster2","Cluster3"),include.lowest=TRUE,order=TRUE)
ggplot()+
geom_polygon(data=china_map1, aes(x=long, y=lat, group=group),fill="grey95", colour="grey60",size=0.25)+ #中国地图
geom_point(data=china_data, aes(x = jd,y = wd,shape=Shape),size=4,fill="white", alpha=1, colour="black")+ #多数据系列散点图
scale_shape_manual(values=c(21,22,23))+
coord_map("polyconic")+
theme(
panel.grid = element_blank(),
plot.background=element_rect(fill="grey100",colour=NA),
panel.background=element_rect(fill="grey100",colour=NA),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
legend.direction="vertical",
legend.position=c(0.3,0.3),
legend.box="vertical",
legend.text.align=0
)
library(ggplot2) #绘图函数
library(plyr) #数据合并工具
library(maptools) #地图素材导入
library(Cairo) #图片高清导出
library(RColorBrewer) #该保重存储着一些高质量的地图配色模板可以参考
library(scales) #分割数据
setwd("C:/Users/JieZhang/Desktop/China_AreaScatter/")
china_map<-readShapePoly("bou2_4p.shp")
x <- china_map@data
xs <- data.frame(id=row.names(x),x)
china_map0<- fortify(china_map)
china_map_data <- join(china_map0, xs, type ="full")
mydata <-read.csv("geshengzhibiao.csv")
china_data<-join(china_map_data,mydata,type="full")
#离散颜色标度分割:
qa <- quantile(na.omit(china_data$zhibiao),c(0,0.2,0.4,0.6,0.8,1.0))
china_data$zhibiao_q<-cut(china_data$zhibiao,qa,labels= c("0-20%","20-40%","40-60%","60-80%","80-100%"),include.lowest = TRUE)
province_city <-read.csv("chinaprovincecity.csv")
province_city$zhibao<-round(runif(34,50,100))
ggplot(china_data,aes(long,lat))+
geom_polygon(aes(group=group,fill=zhibiao_q),colour="black",size=0.25)+
scale_fill_brewer(palette="RdYlGn")+
coord_map("polyconic") +
guides(fill=guide_legend(reverse=TRUE,title=NULL))+
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.3,0.25),
legend.background = element_blank(),
legend.text.align=1,
legend.key.width=unit(1,"line"),
legend.key.height=unit(1,"line")
)
如需转载请联系EasyCharts团队!
送福利啦!
☑ 长按文末二维码,关注EasyCharts公众号;
☑ 加入QQ群,可以在群文件获取“Excel商业图表修炼秘笈之基础篇-大纲”;
☑ 加入QQ群,可以在群文件获取《Excel数据之美》试读样章、与书籍配套的Excel源文件和EasyCharts插件;
在公众号中回复“买书”,即可收到购买链接哦!
我们EasyCharts团队在网易云课堂等你来上课哦,长按下面的二维码就可进入网易学习课堂。本课程定价为19.9。
简介
真正的高手,不是会制作高难度的图表,而是能把最平常的图表绘制出商务范!小菜鸟,老司机,都不容错过本课程哦!
1. 这是Excel史上最全的基础图表类型讲解;本课程重点讲解了23个基础图表案例,包括Excel自动生成的柱形图,条形图,折线图,面积图,散点图,饼图,圆环图、雷达图,表格,卡片等常用商业图表。
2. 这是Excel史上最全的商业图表风格学习大全;本课程提供了5种商业图表风格的图表,包括《商业周刊》风格,《华尔街日报》风格1和2,《经济学人》风格1和2,共5种经典商业杂志图表的风格。
3. 本课程包括了150多张张商业图表演示Excel源文件。每个基础图表案例至少提供6种以上不同的图表风格演示,供读者选择与学习,可以满足不同人群的审美需求。