This is an R Markdown
Notebook for Figure 4a.
1. loading packages and function
library(ggplot2)
library(multcomp)
library(rstatix)
# Define a function to summarizes data.
summarySE = function(data=NULL, measurevar,
groupvars=NULL, na.rm=FALSE,
conf.interval=.95, .drop=TRUE) {
library(plyr)
# if na.rm==T, don't count them
length2 = function (x, na.rm=FALSE) {
if (na.rm) sum(!is.na(x))
else length(x)}
# for each group's data frame, return a vector with N, mean, and sd
datac = ddply(data, groupvars,
.drop = .drop,.fun = function(xx, col) {
c(N = length2(xx[[col]], na.rm = na.rm),
mean = mean(xx[[col]], na.rm = na.rm),
sd = sd(xx[[col]], na.rm = na.rm))},
measurevar)
# rename the "mean" column
datac <- rename(datac, c("mean" = measurevar))
# Calculate standard error of the mean
datac$se <- datac$sd / sqrt(datac$N)
# calculate t-statistic for confidence interval:
ciMult <- qt(conf.interval/2 + .5, datac$N-1)
datac$ci <- datac$se * ciMult
return(datac)
}
2. loading data
lumino = read.csv('alldata.csv', header = T)
lumino = subset(lumino, Depth != '0' & Depth != '0.5' & Depth != '4'& Depth != '5')
lumino$Depth = as.numeric(lumino$Depth)
lumino_freq = subset(lumino, Setting != 'monitoring')
lumino_mntr = subset(lumino, Setting == 'monitoring')
4. setting parameters
pd = position_dodge(0.1)
5. plotting
lmPlot = ggplot(freq_summ, aes(x=Setting, y=bioturbated_areaDA, colour=Setting)) +
geom_errorbar(aes(ymin=bioturbated_areaDA - se, ymax=bioturbated_areaDA + se),
colour="black", width=.1, position=pd) +
#geom_line(aes(group = 1, color = factor(setting))) +
geom_point(position=pd, size=6, shape=16) +
scale_colour_manual(name="Treatments",
breaks=c("control", "high", 'low'),
labels = c("Ambient temperature",
"3-day cycle heatwaves",
"6-day cycle heatwaves"),
values=c('#3399FF', '#FF9900', '#FF0000')) +
scale_x_discrete(name = 'Heatwave scenarios',
breaks=c("control", "high", 'low'),
labels = c("Ambient\ntemperature",
"3-day cycle\nheatwaves",
"6-day cycle\nheatwaves"))+
ylab(expression(bold('Depth-averaged bioturbated surface area '~(cm^2))))+
theme(
plot.title = element_blank(),
panel.background = element_blank(),
legend.position="none",
axis.title.x = element_text(size = 24, face="bold"),
axis.title.y = element_text(size = 24, face="bold"),
axis.text.x = element_text(size =22, face="bold", colour=c('#3399FF', '#FF9900', '#FF0000')),
axis.text.y = element_text(size = 22, face="bold"),
axis.ticks = element_line(size = 2),
axis.ticks.length = unit(0.08, "inch"),
plot.margin = unit(c(0.1,0.1,0.1,0.1), "in"))+
guides(color = guide_legend(override.aes = list(size = 5)))
Warning: Vectorized input to `element_text()` is not officially supported.
Results may be unexpected or may change in future versions of ggplot2.
lmPlot

lmPlot = lmPlot +
geom_segment(aes(x=1, xend=3, y=-Inf, yend=-Inf), size = 2.5, color = 'black') +
geom_segment(aes(y=0, yend=6, x=-Inf, xend=-Inf), size = 2.5, color = 'black')
lmPlot
ggsave('ldm_neo.png', lmPlot, units = 'in', width = 12, height = 9,dpi=600)

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKVGhpcyBpcyBhbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkgTm90ZWJvb2sgZm9yIEZpZ3VyZSA0YS4KCiMjIDEuIGxvYWRpbmcgcGFja2FnZXMgYW5kIGZ1bmN0aW9uCmBgYHtyfQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkobXVsdGNvbXApCmxpYnJhcnkocnN0YXRpeCkKCiMgRGVmaW5lIGEgZnVuY3Rpb24gdG8gc3VtbWFyaXplcyBkYXRhLgpzdW1tYXJ5U0UgPSBmdW5jdGlvbihkYXRhPU5VTEwsIG1lYXN1cmV2YXIsIAogICAgICAgICAgICAgICAgICAgICBncm91cHZhcnM9TlVMTCwgbmEucm09RkFMU0UsCiAgICAgICAgICAgICAgICAgICAgIGNvbmYuaW50ZXJ2YWw9Ljk1LCAuZHJvcD1UUlVFKSB7CiAgbGlicmFyeShwbHlyKQogIAogICMgaWYgbmEucm09PVQsIGRvbid0IGNvdW50IHRoZW0KICBsZW5ndGgyID0gZnVuY3Rpb24gKHgsIG5hLnJtPUZBTFNFKSB7CiAgICBpZiAobmEucm0pIHN1bSghaXMubmEoeCkpCiAgICBlbHNlIGxlbmd0aCh4KX0KICAKICAjIGZvciBlYWNoIGdyb3VwJ3MgZGF0YSBmcmFtZSwgcmV0dXJuIGEgdmVjdG9yIHdpdGggTiwgbWVhbiwgYW5kIHNkCiAgZGF0YWMgPSBkZHBseShkYXRhLCBncm91cHZhcnMsIAogICAgICAgICAgICAgICAgLmRyb3AgPSAuZHJvcCwuZnVuID0gZnVuY3Rpb24oeHgsIGNvbCkgewogICAgICAgICAgICAgICAgICBjKE4gPSBsZW5ndGgyKHh4W1tjb2xdXSwgbmEucm0gPSBuYS5ybSksCiAgICAgICAgICAgICAgICAgICAgbWVhbiA9IG1lYW4oeHhbW2NvbF1dLCBuYS5ybSA9IG5hLnJtKSwKICAgICAgICAgICAgICAgICAgICBzZCA9IHNkKHh4W1tjb2xdXSwgbmEucm0gPSBuYS5ybSkpfSwKICAgICAgICAgICAgICAgIG1lYXN1cmV2YXIpCiAgCiAgIyByZW5hbWUgdGhlICJtZWFuIiBjb2x1bW4gICAgCiAgZGF0YWMgPC0gcmVuYW1lKGRhdGFjLCBjKCJtZWFuIiA9IG1lYXN1cmV2YXIpKQogIAogICMgQ2FsY3VsYXRlIHN0YW5kYXJkIGVycm9yIG9mIHRoZSBtZWFuCiAgZGF0YWMkc2UgPC0gZGF0YWMkc2QgLyBzcXJ0KGRhdGFjJE4pICAKICAKICAjIGNhbGN1bGF0ZSB0LXN0YXRpc3RpYyBmb3IgY29uZmlkZW5jZSBpbnRlcnZhbDogCiAgY2lNdWx0IDwtIHF0KGNvbmYuaW50ZXJ2YWwvMiArIC41LCBkYXRhYyROLTEpCiAgZGF0YWMkY2kgPC0gZGF0YWMkc2UgKiBjaU11bHQKICAKICByZXR1cm4oZGF0YWMpCn0KCmBgYAoKIyMgMi4gbG9hZGluZyBkYXRhCmBgYHtyfQpsdW1pbm8gPSByZWFkLmNzdignYWxsZGF0YS5jc3YnLCBoZWFkZXIgPSBUKQpsdW1pbm8gPSBzdWJzZXQobHVtaW5vLCBEZXB0aCAhPSAnMCcgJiBEZXB0aCAhPSAnMC41JyAmIERlcHRoICE9ICc0JyYgRGVwdGggIT0gJzUnKQpsdW1pbm8kRGVwdGggPSBhcy5udW1lcmljKGx1bWlubyREZXB0aCkKCmx1bWlub19mcmVxID0gc3Vic2V0KGx1bWlubywgU2V0dGluZyAhPSAnbW9uaXRvcmluZycpCmx1bWlub19tbnRyID0gc3Vic2V0KGx1bWlubywgU2V0dGluZyA9PSAnbW9uaXRvcmluZycpCgpgYGAKCiMjIDMuIHN1bW1hcml6ZSBkYXRhCmBgYHtyfQpsdW1pbm9fZnJlcSRiaW90dXJiYXRlZF9hcmVhID0gKGx1bWlub19mcmVxJGFyZWFfYWRqdXN0ZWRfcGVyYykvMTAwICogMzUuMjM4NjUKCmx1bWlub19jb3Jlc3VtID0gYWdncmVnYXRlKGJpb3R1cmJhdGVkX2FyZWEgfiBEYXkgKyBTZXR0aW5nICsgVGFuayArIFJlcGxpY2F0LCBkYXRhID0gbHVtaW5vX2ZyZXEsIEZVTiA9IHN1bSkKbHVtaW5vX2NvcmVzdW0kYmlvdHVyYmF0ZWRfYXJlYURBID0gbHVtaW5vX2NvcmVzdW0kYmlvdHVyYmF0ZWRfYXJlYS81CgojIHN0YXRpc3RpY3MgQU5PVkEKbHVtaW5vX2NvcmVzdW0kU2V0dGluZyA9IGFzLmZhY3RvcihsdW1pbm9fY29yZXN1bSRTZXR0aW5nKQpyZXMuYW92IDwtIGFvdihiaW90dXJiYXRlZF9hcmVhREEgfiBTZXR0aW5nICwgZGF0YSA9IGx1bWlub19jb3Jlc3VtKQpzdW1tYXJ5KHJlcy5hb3YpCgpUdWtleUhTRChyZXMuYW92KQpzdW1tYXJ5KGdsaHQocmVzLmFvdiwgbGluZmN0ID0gbWNwKFNldHRpbmcgPSAiVHVrZXkiKSkpCgpyZXMuYW92MSA9IGtydXNrYWwudGVzdChiaW90dXJiYXRlZF9hcmVhREEgfiBTZXR0aW5nICwgZGF0YSA9IGx1bWlub19jb3Jlc3VtKQpzdW1tYXJ5KHJlcy5hb3YxKQoKcHd0ID0gcGFpcndpc2Uud2lsY294LnRlc3QobHVtaW5vX2NvcmVzdW0kYmlvdHVyYmF0ZWRfYXJlYURBLCBsdW1pbm9fY29yZXN1bSRTZXR0aW5nLAogICAgICAgICAgICAgICAgIHAuYWRqdXN0Lm1ldGhvZCA9ICJCSCIpCndpbGNveF9lZmZzaXplKGJpb3R1cmJhdGVkX2FyZWFEQSB+IFNldHRpbmcsIGRhdGEgPSBsdW1pbm9fY29yZXN1bSkKCmZyZXFfc3VtbSA9IHN1bW1hcnlTRShsdW1pbm9fY29yZXN1bSwgbWVhc3VyZXZhcj0iYmlvdHVyYmF0ZWRfYXJlYURBIiwgZ3JvdXB2YXJzPWMoJ1NldHRpbmcnKSwgbmEucm09VCkKCmZyZXFfc3VtbSRTZXR0aW5nID0gZmFjdG9yKGZyZXFfc3VtbSRTZXR0aW5nLCBsZXZlbHMgPSBjKCJjb250cm9sIiwgImhpZ2giLCAnbG93JykpCgpgYGAKCgojIyA0LiBzZXR0aW5nIHBhcmFtZXRlcnMKYGBge3J9CnBkID0gcG9zaXRpb25fZG9kZ2UoMC4xKQoKYGBgCgojIyA1LiBwbG90dGluZwpgYGB7cn0KbG1QbG90ID0gZ2dwbG90KGZyZXFfc3VtbSwgYWVzKHg9U2V0dGluZywgeT1iaW90dXJiYXRlZF9hcmVhREEsIGNvbG91cj1TZXR0aW5nKSkgKyAKICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluPWJpb3R1cmJhdGVkX2FyZWFEQSAtIHNlLCB5bWF4PWJpb3R1cmJhdGVkX2FyZWFEQSArIHNlKSwgCiAgICAgICAgICAgICAgICBjb2xvdXI9ImJsYWNrIiwgd2lkdGg9LjEsIHBvc2l0aW9uPXBkKSArCiAgI2dlb21fbGluZShhZXMoZ3JvdXAgPSAxLCBjb2xvciA9IGZhY3RvcihzZXR0aW5nKSkpICsKICBnZW9tX3BvaW50KHBvc2l0aW9uPXBkLCBzaXplPTYsIHNoYXBlPTE2KSArCiAgc2NhbGVfY29sb3VyX21hbnVhbChuYW1lPSJUcmVhdG1lbnRzIiwgCiAgICAgICAgICAgICAgICAgICAgICBicmVha3M9YygiY29udHJvbCIsICJoaWdoIiwgJ2xvdycpLAogICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYygiQW1iaWVudCB0ZW1wZXJhdHVyZSIsIAogICAgICAgICAgICAgICAgICAgICAgIjMtZGF5IGN5Y2xlIGhlYXR3YXZlcyIsIAogICAgICAgICAgICAgICAgICAgICAgIjYtZGF5IGN5Y2xlIGhlYXR3YXZlcyIpLCAKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1jKCcjMzM5OUZGJywgJyNGRjk5MDAnLCAnI0ZGMDAwMCcpKSArCiAgc2NhbGVfeF9kaXNjcmV0ZShuYW1lID0gJ0hlYXR3YXZlIHNjZW5hcmlvcycsIAogICAgICAgICAgICAgICAgICAgICBicmVha3M9YygiY29udHJvbCIsICJoaWdoIiwgJ2xvdycpLAogICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJBbWJpZW50XG50ZW1wZXJhdHVyZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMy1kYXkgY3ljbGVcbmhlYXR3YXZlcyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNi1kYXkgY3ljbGVcbmhlYXR3YXZlcyIpKSsKICB5bGFiKGV4cHJlc3Npb24oYm9sZCgnRGVwdGgtYXZlcmFnZWQgYmlvdHVyYmF0ZWQgc3VyZmFjZSBhcmVhICd+KGNtXjIpKSkpKwogIHRoZW1lKAogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCksIAogICAgbGVnZW5kLnBvc2l0aW9uPSJub25lIiwKICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMjQsIGZhY2U9ImJvbGQiKSwKICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMjQsIGZhY2U9ImJvbGQiKSwKICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KHNpemUgPTIyLCBmYWNlPSJib2xkIiwgY29sb3VyPWMoJyMzMzk5RkYnLCAnI0ZGOTkwMCcsICcjRkYwMDAwJykpLAogICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDIyLCBmYWNlPSJib2xkIiksCiAgICBheGlzLnRpY2tzID0gZWxlbWVudF9saW5lKHNpemUgPSAyKSwKICAgIGF4aXMudGlja3MubGVuZ3RoID0gdW5pdCgwLjA4LCAiaW5jaCIpLAogICAgcGxvdC5tYXJnaW4gPSB1bml0KGMoMC4xLDAuMSwwLjEsMC4xKSwgImluIikpKwogIGd1aWRlcyhjb2xvciA9IGd1aWRlX2xlZ2VuZChvdmVycmlkZS5hZXMgPSBsaXN0KHNpemUgPSA1KSkpCmxtUGxvdAoKbG1QbG90ID0gbG1QbG90ICsgCiAgZ2VvbV9zZWdtZW50KGFlcyh4PTEsIHhlbmQ9MywgeT0tSW5mLCB5ZW5kPS1JbmYpLCBzaXplID0gMi41LCBjb2xvciA9ICdibGFjaycpICsKICBnZW9tX3NlZ21lbnQoYWVzKHk9MCwgeWVuZD02LCB4PS1JbmYsIHhlbmQ9LUluZiksIHNpemUgPSAyLjUsIGNvbG9yID0gJ2JsYWNrJykKbG1QbG90CgpnZ3NhdmUoJ2xkbV9uZW8ucG5nJywgbG1QbG90LCB1bml0cyA9ICdpbicsIHdpZHRoID0gMTIsIGhlaWdodCA9IDksZHBpPTYwMCkKYGBgCgoKCgo=