Я пытаюсь создать ggplot, который показывает период времени, в течение которого птицы каждый день летали над участком в ответ на одну из четырех обработок, сгруппированных по блокам. Есть 6 блоков. Каждое лечение проводилось в разные дни в течение двух часов.
Первая проблема заключается в том, что при использовании facet_grid
все точки данных для каждого блока группируются по первой дате каждого блока, а не распределяются по четырем дням внутри блока.
* 1005Во-вторых, несмотря на то, что я читал различные учебные пособия, я не смог понять, как справляться с продолжительностью времени (переменная = Total.Time), то есть минут и секунд, в течение которых птицы присутствовали. Я хотел бы использовать переменную Total.Time_mins, чтобы показать общее время (минуты и секунды), затраченное на поиск по сайту. Шкала явно отключена, так как разница между 15 минутами и 2 секундами должна быть заметно больше. Данные времени в электронной таблице были введены в формате ЧЧ: ММ: СС.
Я приложил копию графика, на котором показаны соответствующие проблемы:
Пример данных приведен ниже в созданных переменных, помеченных как 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-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", "Control", "Decoys", "Playback", "Decoys & Playback", "Decoys", "Playback", "Control", "Decoys & Playback")
Blocks <- c("1","1","1","1","2","2","2","2","3","3","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, Total.Time, 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