我正在尝试生成一个ggplot,该图显示了鸟每天响应4种处理方式(按Block分组)之一花在某个位置上的时间。有6个街区。在两个小时的时间内,在不同的一天进行每种治疗。
第一个问题是,使用facet_grid
时,每个区块的所有数据点都在每个区块的第一个日期分组,而不是分布在该区块内的四天内。
其次,尽管阅读了各种教程,但我仍无法弄清楚如何处理持续时间(变量= Total.Time),即鸟类出现的分钟和秒数。我想使用Total.Time_mins变量来显示在网站上进行勘探所花费的总时间(分钟和秒)。刻度显然不正确,因为15分钟和2秒之间的差值应该明显更大。电子表格中的时间数据输入为HH:MM:SS。
我已附上图表的副本,其中显示了相应的问题:
下面在创建的变量中提供了数据样本,这些变量标记为Date,Total.Time_mins和Treatment
Dates <- as.Date(c("0019-10-07","0019-10-08","0019-10-09","0019-10-10","0019-10-11","0019-10-12","0019-10-13","0019-10-14","0019-10-15","0019-10-16","0019-10-17"))
Total.Time <- c("0:02:27","0:00:16","0:00:22","0:00:03","0:00:00","0:00:20","0:01:32","0:09:11","0:00:30","0:07:26","0:00:59","0:14:13")
Treat <- c("Playback","Control","Decoys & Playback","Decoys","Playback","Decoys & Playback")
Blocks <- c("1","1","2","3","3")
Data1 <- data.frame(Dates,Total.Time,Treat,Blocks)
这是我到目前为止生成的代码。
[names(Data)
\[1\] "Dates" "Blocks" "Treat" "Observation" "Total.Time"
\[6\] "Time" "Max_Birds" "Landing" "Wind_Speed" "Beaufort_Force_Scale"
\[11\] "Wind_Direction"
# Convert the date information into R's date format. R will automatically treat these dates as numeric in our analyses.
Data$Date <- as.Date(Data$Date,format = "%d/%m/%Y")
# Create GGPlot of time spent prospecting over site
p = ggplot(Data1,aes(Dates,fill=Treat)) + geom_bar(stat = "identity")
p = p + facet_grid(.~ Blocks)
p = p + scale_fill_grey(start=0.8,end=0.0)
p = p + theme(panel.background = element_blank())
p = p + theme(axis.text.x=element_text(size=16,vjust=0.6),axis.title.x=element_text(face="bold",size=16,vjust=-6),axis.title.y=element_text(face="bold",size=16),axis.text.y=element_text(size=16),legend.text = element_text(size=12),axis.line=element_line())
p = p + theme(axis.text.x=element_text(size=16,vjust=0.6))
#p = p + scale_x_date(date_labels="%d %b",date_breaks = "4 day",breaks = 4)
p = p + theme(axis.text.x = element_text(face="bold",size=10,angle=90))
p