用熱力圖的方式去觀察資料的分布,在工作上進行客戶留存率分析時也做過一次熱力圖,要展現許多資料的大小比較時,我認為熱力圖是一個可以讓老大清楚看出優劣的作圖概念。
我用這種概念來分出"月"跟"星期",用到滿多種時間處理的概念的。
用lubridate包的ymd可以讓數字型態的20050101變成日期格式,再用wday可以找出是星期幾,month可以找出輸入的日期是幾月。
將資料合併為一個 data.frame , 日期,星期,月份,資料
再來就是ggplot作圖了,必須將資料變成因子與數值型態,這部分要特別留意。
library(lubridate)
Data = cbind(rownames(qq),qq[,1])
wday = wday(ymd(Data[,1]))
mday = month(ymd(Data[,1]))
data = data.frame(time = ymd(Data[,1]),wday,mday,profit = Data[,2])
p <- ggplot(data,aes(factor(mday),factor(wday),z=as.numeric(Data[,2])))
p +stat_summary_2d(fun=function(x) median(x))+
labs(x='月份',y='星期')
我們可以看出來,星期一跟星期天比較多人,七、八月也比較多人,猜想是暑假的關係吧!
參考資料:https://www.r-bloggers.com/lang/chinese/929