R數據分析project---睡眠數據


 觀察一下數據格式

 

 

 

data_sleep<-read.csv("F:/data.csv",header=T)
sleepfre<-as.character(data_sleep$X3.你的熬夜頻率是.)
sleepfref<-factor(sleepfre, levels=c("每晚","經常","偶爾","幾乎不"),labels=c("5次及以上","3-4次","1-2次","幾乎不"),ordered=T)
efficiency<-as.character(data_sleep$X6.熬夜時的學習或者工作效率如何.)
efficiency<-factor(efficiency, levels=c("精神亢奮,效率很高","邊際收益遞減(即熬得越晚效率越低)"),labels=c('整晚精神亢奮','邊際收益遞減'))
feeling_tomorrow<-as.character(data_sleep$X7.熬夜對你第二天的學習工作有多大的影響.)
feeling_tomorrow<-factor(feeling_tomorrow,levels=c("熬夜使我快樂","正常,基本沒有影響","生理上很疲乏,但是還能撐過去","非常難受,大大降低工作效率"),labels=c("快樂","正常","勉強能堅持工作","工作效率極低"))
datasleepn<-data.frame(sleepfref,efficiency,feeling_tomorrow)
library(ggplot2)
qplot(sleepfre,data =factor(sleepfre, levels=c("每晚","經常","偶爾","幾乎不")), geom = "bar")####這句命令運行不了
###“Error: ggplot2 doesn't know how to deal with data of class factor”
###使用ggplot則沒有這個問題!!
###在整理數據之前就轉化成因子數據的好處在於可以直接使呈現的bar有一個順序
##盡管使用scale_x_discrete(limits=c())也能實現
fre <- ggplot(datasleepn, aes(x=sleepfref))+geom_bar(fill=c("#F46D43","#F46D43","#74ADD1","#74ADD1"),alpha=0.8)
motherb<-theme_bw()+theme(panel.grid.major = element_line(colour=NA))+theme(panel.grid.minor = element_blank())+theme(panel.border = element_blank())+theme(axis.ticks.x = element_blank())+theme(axis.line.y = element_line())+theme(axis.title.x = element_blank())
###scale_y_continuous(expand=c(0,0))讓y軸從0開始
fre+scale_y_continuous(expand=c(0,0))+labs(y="人數")+motherb

 

 

 

#############熬夜原因######
causes<-as.character(data_sleep$X5.你通常因為什么原因熬夜.)
causes1<-strsplit(causes,split = "")
causes2<-unlist(causes1)
##看一下結果table(causes2)
###causep<-factor(causes2,levels=c( "玩手機(包括但不限於夜聊、刷微博、看視頻等)" ,"學習(包括但不限於趕論文、寫作業、准備pre材料等)", "追劇或看電影、娛樂節目等" ,"刷課外書(比如小說)","轟趴刷夜","各種比賽、競賽等課外活動","班級、組織或社團事務"," 他人干擾 ","其他 "),labels=c("玩手機","學習"," 追劇"," 看小說","開party "," 課外競賽 ","社團事務 "," 他人干擾 ","其他 "))
##p<-ggplot(causep,aes(x=causep))+geom_bar()
##上面兩行命令無法做圖
##直接使用笨辦法
df <- data.frame(table(causes2))
fix(df)
##修改標簽名字
p<-ggplot(df,aes(x=熬夜原因,y=頻數))+geom_bar(stat = "identity")
df

px1<-seq(from=0,to=10,length=10000)
py1<-sqrt(5^2-(px1-5)^2)

Project1x<-c(px1,rev(px1))
Project1y<-c(py1,-py1)
Project1<-data.frame(lon=Project1x,lat=Project1y)
Project1$group<-"玩手機"
Project1$order<-1:nrow(Project1)

Project2<-data.frame(lon=Project1x+13,lat=Project1y)
Project2$group<-"學習"
Project2$order<-1:nrow(Project2)

Project3<-data.frame(lon=Project1x+26,lat=Project1y)
Project3$group<-"小說追劇開party"
Project3$order<-1:nrow(Project3)

Project4<-data.frame(lon=Project1x+39,lat=Project1y)
Project4$group<-"課外競賽、班級事務"
Project4$order<-1:nrow(Project4)

Project5<-data.frame(lon=Project1x+52,lat=Project1y)
Project5$group<-"其他 "
Project5$order<-1:nrow(Project5)

Project<-rbind(Project1,Project2,Project3,Project4,Project5)
ggplot(Project)+geom_path(aes(lon,lat,group=group))
##########################
Proj1<-Project1[,1:2]%>%filter(lat<=1.315789)
Proj1[nrow(Proj1)+1,]<-c(8,1.315789)
Proj1$group<-"玩手機"
Proj1$order<-1:nrow(Proj1)

Proj2<-Project2[,1:2]%>%filter(lat<=1)
Proj2[nrow(Proj2)+1,]<-c(18,1)
Proj2$group<-"學習"
Proj2$order<-1:nrow(Proj2)

Proj3<-Project3[,1:2]%>%filter(lat<=0.8684211)
Proj3[nrow(Proj3)+1,]<-c(40,0.8684211)
Proj3$group<-"小說追劇開party"
Proj3$order<-1:nrow(Proj3)

Proj4<-Project4[,1:2]%>%filter(lat<=0.5789474)
Proj4$group<-"課外競賽、班級事務"
Proj4$order<-1:nrow(Proj4)

Proj5<-Project5[,1:2]%>%filter(lat<=-2.815789)
Proj5$group<-"其他 "
Proj5$order<-1:nrow(Proj5)

Projdata<-rbind(Proj1,Proj2,Proj3,Proj4,Proj5)

labeldata<-data.frame(x=seq(from=5,to=57,length=5),y=c(1.4,1.1,0.95,0.6,-2),label=sprintf("%2d%%",c(63,60,59,56,22)))
###############
p1<-ggplot()+
  geom_polygon(data=Projdata,aes(x=lon,y=lat,group=group),fill=c("#74ADD1"),col=NA,alpha=0.8)+
  geom_path(data=Project,aes(x=lon,y=lat,group=group),col="black",size=1.2)+
  geom_text(data=labeldata,aes(x=x,y=y+1,label=label),hjust=.5,size=5)+
  scale_x_continuous(breaks=labeldata$x,labels=c("玩手機","學習","小說追劇\n開party","課外競賽\n班級事務","其他"))+
  ylim(-5.5,6)+
  theme_minimal()+
  theme(
    panel.grid=element_blank(),
    axis.title=element_blank(),
    axis.text.y=element_blank(),
    axis.text.x = element_text(size = 13,face="bold"),
    plot.margin = unit(c(.2,.2,1,.2), "cm")
  )
p1

p <- ggplot(datasleepn, aes(x=efficiency,fill=feeling_tomorrow))
p+geom_bar()
peffi<-p+geom_bar(position='stack')+scale_fill_manual(values = rev(c("#F46D43","#FDAE61","#ABD9E9","#74ADD1")))
motherb<-theme_bw()+theme(panel.grid.major = element_line(colour=NA))+theme(panel.grid.minor = element_blank())+theme(panel.border = element_blank())+theme(axis.ticks.x = element_blank())+theme(axis.line.y = element_line())
peffi+scale_y_continuous(expand=c(0,0))+labs(x="熬夜當晚效率",y="人數",fill="熬夜次日狀態")+motherb

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM