您现在的位置:主页 > 数据可视化 > R数据可视化之ggplot2 (六)

R数据可视化之ggplot2 (六)

2017-06-19 15:48

u=2156138114,3697068155&fm=21&gp=0 在很多地方你会看到很多比较炫的图,它不同平常见到的统计图,这里边介绍两种这样的图,一种是向量场图,例如描绘风向图,人际关系网,另一个是地图系列,这一类包括百度迁徙图等.这些新的可视化方式非常的直观,所表达出的信息,更加的明了,其实这些也可以用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)

1来一起看看画图的原理:首先看看数据:2vx,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")
33还可以改变一下背景的经纬度形状:

states_map <- map_data("state")
ggplot(states_map, aes(x=long, y=lat, group=group)) +
geom_polygon(fill="white", colour="black")+coord_map("polyconic")

4

如果我们觉得这幅地图太单调,我们还可以添加一些填充色:

ggplot(states_map, aes(x=long, y=lat, group=group)) +
  geom_polygon(fill=states_map$group)+
  coord_map("polyconic")

44

我们光画个地图没什么意义,还需要在地图上添加一些信息,比方,可以根据地区显示每个地区的某些特征,这时候我们只需将每个地区的特征构建成一个变量,并入到地图数据框中就可以啦.图中颜色越深袭击案就越多.


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")

55

3.总结

aes(   )中可以映射x轴,y轴,fill,group,shape,alpha

geom_xxx()的对象包括:0e6aa1823d4cac3887d86bee6461106a_b

其中括号里面可以添加的参数也包括fill,group,shape,alpha等等还有其他的特定参数.

stat_xxx()的对象:df2cfed125a11b04d3989b4c6b2ced2c_b

scale_的对象:法

theme( ):

参数 设置内容 继承自 line 所有线属性   rect 所有矩形区域属性   text 所有文本相关属性   title 所有标题属性   axis.title 坐标轴标题 text axis.title.x x轴属性 axis.title axis.title.y y轴属性 axis.title axis.text 坐标轴刻度标签属性 text axis.text.x 属性和继承和前面类似,不再重复   axis.text.y     axis.ticks 坐标轴刻度线 line axis.ticks.x     axis.ticks.y     axis.ticks.length 刻度线长度   axis.ticks.margin 刻度线和刻度标签之间的间距   axis.line 坐标轴线 line axis.line.x     axis.line.y     legend.background 图例背景 rect legend.margin 图例边界   legend.key 图例符号   legend.key.size 图例符号大小   legend.key.height 图例符号高度   legend.key.width 图例符号宽度   legend.text 图例文字标签   legend.text.align 图例文字标签对齐方式 0为左齐,1为右齐 legend.title 图例标题 text legend.title.align 图例标题对齐方式   legend.position 图例位置 left, right, bottom, top, 两数字向量 legend.direction 图例排列方向 "horizontal" or "vertical" legend.justification 居中方式 center或两数字向量 legend.box 多图例的排列方式 "horizontal" or "vertical" legend.box.just 多图例居中方式   panel.background 绘图区背景 rect panel.border 绘图区边框 rect panel.margin 分面绘图区之间的边距   panel.grid 绘图区网格线 line panel.grid.major 主网格线   panel.grid.minor 次网格线   panel.grid.major.x     panel.grid.major.y     panel.grid.minor.x     panel.grid.minor.y     plot.background 整个图形的背景   plot.title 图形标题   plot.margin 图形边距 top, right, bottom, left strip.background 分面标签背景 rect strip.text 分面标签文本 text strip.text.x     strip.text.y    

包括labs(  )中可以添加标题

coord_XX( )

facet_xx( )

xlim( )

ylim( )

等等.


PPV原创文章,严禁转载. (文:@白加黑治感冒

-大数据培训讲师

国内领先的大数据学习社区和职业培训平台,欢迎关注!

qrcode_for_gh_5309ccdda10b_344