在很多地方你会看到很多比较炫的图,它不同平常见到的统计图,这里边介绍两种这样的图,一种是向量场图,例如描绘风向图,人际关系网,另一个是地图系列,这一类包括百度迁徙图等.这些新的可视化方式非常的直观,所表达出的信息,更加的明了,其实这些也可以用ggplot2画出,下面简单介绍.
1.向量场
在之前的点图中,我们其实见过,这种在点旁加垂线的方法.这里深入一点,先看效果:
ggplot(islicesub, aes(x=x, y=y)) +
geom_segment(aes(xend = x+vx/50, yend = y+vy/50),
arrow = arrow(length = unit(0.1, "cm")), size = 0.25)
来一起看看画图的原理:首先看看数据:vx,vy,是风速在x,y方向的分量,那么我们把每个点添加一条线,线从点出发,结束于(vx,vy)那么这条线就表示着此点的风速.就这么简单.
2.地图
首先安装加载maps包,然后将maps包中的数据传输给某个变量,然后用ggplot画出此地图.
此处的long是经度,lat是维度,group为多边形变量
states_map <- map_data("state")
ggplot(states_map, aes(x=long, y=lat, group=group)) +
geom_polygon(fill="white", colour="black")
还可以改变一下背景的经纬度形状:
states_map <- map_data("state")
ggplot(states_map, aes(x=long, y=lat, group=group)) +
geom_polygon(fill="white", colour="black")+coord_map("polyconic")
如果我们觉得这幅地图太单调,我们还可以添加一些填充色:
ggplot(states_map, aes(x=long, y=lat, group=group)) +
geom_polygon(fill=states_map$group)+
coord_map("polyconic")
我们光画个地图没什么意义,还需要在地图上添加一些信息,比方,可以根据地区显示每个地区的某些特征,这时候我们只需将每个地区的特征构建成一个变量,并入到地图数据框中就可以啦.图中颜色越深袭击案就越多.
crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)
crime_map <- merge(states_map, crimes, by.x="region", by.y="state")
crime_map <- arrange(crime_map, group, order)
ggplot(crime_map, aes(x=long, y=lat, group=group, fill=Assault)) +
geom_polygon(colour="black") +
coord_map("polyconic")
3.总结
aes( )中可以映射x轴,y轴,fill,group,shape,alpha
geom_xxx()的对象包括:
其中括号里面可以添加的参数也包括fill,group,shape,alpha等等还有其他的特定参数.
stat_xxx()的对象:
scale_的对象:
theme( ):
包括labs( )中可以添加标题
coord_XX( )
facet_xx( )
xlim( )
ylim( )
等等.
PPV原创文章,严禁转载. (文:@白加黑治感冒
-大数据培训讲师
国内领先的大数据学习社区和职业培训平台,欢迎关注!