- 在R語言ggplot2包中申尼,有的時候需要將不同的數(shù)據(jù)匯總在一張圖上面塑陵,此時哎迄,應(yīng)該有兩種方法衬潦,我們考慮如下的數(shù)據(jù)框:
時間 流失用戶 新用戶
1月份 4531 15108
2月份 4695 8290
3月份 5695 9479
4月份 6013 8690
5月份 4919 9216
6月份 6019 10336
7月份 7100 8968
8月份 7148 8783
-
數(shù)據(jù)框保存在變量x0中
- 我們想在一張圖上同時畫 時間+流失用戶 斤蔓、 時間+新用戶 的兩張折線圖,來分析用戶的流失與新增的情況
此時镀岛,有兩種方法來搞定該圖:
- 我們想在一張圖上同時畫 時間+流失用戶 斤蔓、 時間+新用戶 的兩張折線圖,來分析用戶的流失與新增的情況
利用ggplot的圖層語法來搞定多重圖層的疊加將多重數(shù)據(jù)放在同一個數(shù)據(jù)框中
#使用代碼:
ggplot(x0)+geom_line(aes(x = 時間,y=流失用戶,group=1),color="chartreuse3")+
geom_line(aes(x=時間,y=新用戶,group=1),color="red")+
簡單主題+
labs(title="2016年廣電網(wǎng)絡(luò)廣州用戶流失分析")
- 此處將兩個映射分別放在了兩個aes()中弦牡,數(shù)據(jù)框是同一個,另外需要注意group=1的使用漂羊,因為時間變量是一個因子變量驾锰,所以需要使用group=1來繪制折線圖
- 注意到此時圖片中是沒有對兩根折線定義做出解釋的,必須通過手動的添加標(biāo)簽來解釋兩根折線
通過因子變量將color添加到映射中來畫出兩根折線圖
- 此時走越,首先我們需要利用tidyr包(或者reshape2包將數(shù)據(jù)框變形椭豫,從寬的數(shù)據(jù)變成長的數(shù)據(jù)),使用代碼:
x0_0 <- gather(x0,key = 用戶類型,value = 人數(shù),流失用戶,新用戶)
#得到數(shù)據(jù):
時間 用戶類型 人數(shù)
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
#對于該數(shù)據(jù)的第一列和第二列旨指,我們應(yīng)該將其轉(zhuǎn)化為因子變量
x0_0[,2] <- as.factor(x0_0[,2])
ggplot(x0_0,aes(x=時間,y=人數(shù),color=用戶類型,group=用戶類型))+geom_line()
- 此時發(fā)現(xiàn)圖中新用戶是綠色折線赏酥,流失用戶是紅色折線,我們想更換一下折線的顏色谆构,此時應(yīng)該調(diào)整因子變量的因子水平
2.再次繪圖得到
x0_0[,2] <- factor(x0_0[,2],levels = c("新用戶","流失用戶"))
#再次作圖
ggplot(x0_0,aes(x=時間,y=人數(shù),color=用戶類型,group=用戶類型))+
geom_line()+
簡單主題+
labs(title="2016年廣電網(wǎng)絡(luò)廣州用戶流失分析")
3.最后得到圖