R语言数据可视化:多个数据汇总在一张图

  1. 在R语言ggplot2包中,有的时候需要将不同的数据汇总在一张图上面,此时,应该有两种方法,我们考虑如下的数据框:
    时间 流失用户 新用户
1月份     4531  15108
2月份     4695   8290
3月份     5695   9479
4月份     6013   8690
5月份     4919   9216
6月份     6019  10336
7月份     7100   8968
8月份     7148   8783
  • 数据框保存在变量x0中

    1. 我们想在一张图上同时画 时间+流失用户 、 时间+新用户 的两张折线图,来分析用户的流失与新增的情况
      此时,有两种方法来搞定该图:

利用ggplot的图层语法来搞定多重图层的叠加将多重数据放在同一个数据框中

#使用代码:
ggplot(x0)+geom_line(aes(x = 时间,y=流失用户,group=1),color="chartreuse3")+
geom_line(aes(x=时间,y=新用户,group=1),color="red")+
简单主题+
labs(title="2016年广电网络广州用户流失分析")

图片.png
  • 此处将两个映射分别放在了两个aes()中,数据框是同一个,另外需要注意group=1的使用,因为时间变量是一个因子变量,所以需要使用group=1来绘制折线图
  • 注意到此时图片中是没有对两根折线定义做出解释的,必须通过手动的添加标签来解释两根折线

通过因子变量将color添加到映射中来画出两根折线图

  1. 此时,首先我们需要利用tidyr包(或者reshape2包将数据框变形,从宽的数据变成长的数据),使用代码:
x0_0 <- gather(x0,key = 用户类型,value = 人数,流失用户,新用户)
#得到数据:
时间 用户类型  人数
1月份 流失用户  4531
2月份 流失用户  4695
3月份 流失用户  5695
4月份 流失用户  6013
5月份 流失用户  4919
6月份 流失用户  6019
7月份 流失用户  7100
8月份 流失用户  7148
1月份   新用户 15108
2月份   新用户  8290
3月份   新用户  9479
4月份   新用户  8690
5月份   新用户  9216
6月份   新用户 10336
7月份   新用户  8968
8月份   新用户  8783
 
#对于该数据的第一列和第二列,我们应该将其转化为因子变量
 
x0_0[,2] <- as.factor(x0_0[,2])
 
ggplot(x0_0,aes(x=时间,y=人数,color=用户类型,group=用户类型))+geom_line()
图片.png
  • 此时发现图中新用户是绿色折线,流失用户是红色折线,我们想更换一下折线的颜色,此时应该调整因子变量的因子水平

2.再次绘图得到

x0_0[,2] <- factor(x0_0[,2],levels = c("新用户","流失用户"))
 
#再次作图
ggplot(x0_0,aes(x=时间,y=人数,color=用户类型,group=用户类型))+
geom_line()+
简单主题+
labs(title="2016年广电网络广州用户流失分析")

3.最后得到图

图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,928评论 25 709
  • 今天从密云回来,时间还早,老公提议让我去看《战狼》2,因他和孩子已经看过了,便问女儿还愿意跟妈妈去不?不去的话就带...
    sanyaojing阅读 159评论 0 0
  • (一) 毕业前一百天,马武我俩趴在栏杆上往下吐唾沫。 比试了几轮后,马武扭头,说“哎,还有 100天,如果去俩零多...
    Mr嘿阅读 411评论 0 1
  • 爸爸一个人在老家新修了个小厨房,新做了楼梯栏杆,一切井井有条,感觉父亲并没有像我想的那么老?
    467f7e94d776阅读 180评论 0 0
  • 现在想来,高中三年好像还是一个没醒来的梦。 我的高中是滚动制的,每学期初会根据上一学期的成绩重新分班,文理各两个重...
    芒刺97阅读 294评论 0 0