I’m trying to plot two data.frames in a single plot, but for some reason the legend isn’t match my line-type that I’ve given it. Is there a more efficient way to do this?
library(dplyr)
library(ggplot2)
library(Rmisc)
black_line <- other %>%
group_by(Month, Zone) %>%
dplyr::summarise(q1=quantile(freq, probs = 0.25, na.rm = TRUE),
median=median(freq, na.rm = TRUE),
mean=mean(freq, na.rm = TRUE),
q3=quantile(freq, probs = 0.75, na.rm = TRUE),
uci_freq = CI(freq)[1],
lci_freq = CI(freq)[3])
colors <- lines %>%
group_by(CYR, Month, Zone) %>%
dplyr::summarise(q1=quantile(freq, probs = 0.25, na.rm = TRUE),
median=median(freq, na.rm = TRUE),
mean=mean(freq, na.rm = TRUE),
q3=quantile(freq, probs = 0.75, na.rm = TRUE))
ggplot(data=black_line, aes(x=Month)) +
geom_ribbon(aes(ymin = lci_freq, ymax = uci_freq), fill="light grey",group=1) +
geom_line(aes(y = mean, colour="mean"), linetype=2, group=1) +
geom_line(data = colors, aes(x = Month, y = mean, colour = CYR, group = CYR), size = 0.9) +
scale_color_manual(labels = c("2006 (High)", "2014 (Low)", "2017", "2018", "2019", "Mean (Other Years)"),
values=c('lime green','maroon','Purple','light sea green','dark orange', 'black'),
name="") +
scale_linetype_manual(values = c(rep("solid", 5), rep("dashed", 1))) +
facet_wrap(~factor(Zone,levels=c("West", "Whipray", "Rankin", "Crocodile")) ~ ., # Change order of Zones
labeller=as_labeller(c("West" = "West", # Change name of facet_wraps
"Whipray" = "Whipray",
"Rankin" = "Rankin",
"Crocodile" = "Crocodile Dragover*")),
scales="free") + # x-axis to all plots
scale_y_continuous(expand = c(0, 0),
limits=c(0, 1),
breaks=c(0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0)) +
theme_classic() +
theme(strip.text = element_text(face = "bold"),
legend.justification = "top",
strip.background = element_blank(), # Removes text box around plot title
axis.title.y = element_text(face="bold", margin = margin(t = 0, r = 10, b = 0, l = 0)),
axis.title.x = element_text(face="bold", margin = margin(t = 10, r = 0, b = 0, l = 0))) +
ylab("Frequency of Occurence")
2 data.frames attached:
> dput(colors)
structure(list(CYR = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), levels = c("2006",
"2014", "2017", "2018", "2019"), class = "factor"), Month = structure(c(2L,
2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L,
6L, 6L, 6L, 7L, 7L, 7L, 7L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L,
3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L,
5L, 5L, 5L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L,
6L, 6L, 6L, 7L, 7L, 7L, 7L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L,
3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 7L,
7L, 7L, 7L), levels = c("5", "6", "7", "8", "9", "10", "11"), class = "factor"),
Zone = c("Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West",
"Whipray", "Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West",
"Whipray", "Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West",
"Whipray", "Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West",
"Whipray", "Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West",
"Whipray", "Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West",
"Whipray", "Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West",
"Whipray", "Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West",
"Whipray", "Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West",
"Whipray", "Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West",
"Whipray", "Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West",
"Whipray"), q1 = c(`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0.25,
`25%` = 1, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0), median = c(0, 0, 0, 0,
0, 0, 0.5, 0.5, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), mean = c(0,
0.0714285714285714, 0.461538461538462, 0.2, 0.1, 0.0714285714285714,
0.5, 0.5, 0, 0.357142857142857, 0.346153846153846, 0.6, 0.1,
0.214285714285714, 0.730769230769231, 0.8, 0, 0.357142857142857,
0.461538461538462, 0.6, 0.1, 0.285714285714286, 0.192307692307692,
0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0.0526315789473684, 0, 0.0454545454545455,
0.05, 0, 0, 0.136363636363636, 0.25, 0, 0, 0, 0.35, 0, 0,
0.227272727272727, 0.25, 0, 0, 0.166666666666667, 0.421052631578947,
0, 0, 0.227272727272727, 0.333333333333333, 0.157894736842105,
0.15, 0.272727272727273, 0.2, 0.157894736842105, 0, 0.0454545454545455,
0.1, 0.0526315789473684, 0, 0.136363636363636, 0.15, 0, 0.05,
0.0454545454545455, 0.25, 0.105263157894737, 0.05, 0.227272727272727,
0.25, 0.111111111111111, 0.15, 0.227272727272727, 0.363636363636364,
0.368421052631579, 0.1, 0.545454545454545, 0.3, 0.473684210526316,
0.1, 0.318181818181818, 0.15, 0.210526315789474, 0, 0.227272727272727,
0.05, 0, 0, 0.227272727272727, 0.2, 0.105263157894737, 0,
0.318181818181818, 0.25, 0, 0, 0.227272727272727, 0.25, 0.105263157894737,
0, 0.272727272727273, 0.25, 0.157894736842105, 0, 0.454545454545455,
0.35, 0.315789473684211, 0, 0.272727272727273, 0.35, 0.0526315789473684
), q3 = c(`75%` = 0, `75%` = 0, `75%` = 1, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 1, `75%` = 1, `75%` = 0, `75%` = 1, `75%` = 1,
`75%` = 1, `75%` = 0, `75%` = 0, `75%` = 1, `75%` = 1, `75%` = 0,
`75%` = 1, `75%` = 1, `75%` = 1, `75%` = 0, `75%` = 0.75,
`75%` = 0, `75%` = 0.75, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0.25, `75%` = 0,
`75%` = 0, `75%` = 0, `75%` = 1, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 0.25, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 1,
`75%` = 0, `75%` = 0, `75%` = 0, `75%` = 1, `75%` = 0, `75%` = 0,
`75%` = 0.75, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 0, `75%` = 0.25, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 0.25, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 1, `75%` = 1, `75%` = 0, `75%` = 1, `75%` = 1, `75%` = 1,
`75%` = 0, `75%` = 1, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 1, `75%` = 0.25, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 0.25, `75%` = 0, `75%` = 0, `75%` = 0.75,
`75%` = 0.25, `75%` = 0, `75%` = 0, `75%` = 1, `75%` = 1,
`75%` = 1, `75%` = 0, `75%` = 0.75, `75%` = 1, `75%` = 0)), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -132L), groups = structure(list(
CYR = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), levels = c("2006", "2014",
"2017", "2018", "2019"), class = "factor"), Month = structure(c(2L,
3L, 4L, 5L, 6L, 7L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L,
5L, 6L, 7L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 1L, 2L, 3L, 4L, 5L,
6L, 7L), levels = c("5", "6", "7", "8", "9", "10", "11"), class = "factor"),
.rows = structure(list(1:4, 5:8, 9:12, 13:16, 17:20, 21:24,
25:28, 29:32, 33:36, 37:40, 41:44, 45:48, 49:52, 53:56,
57:60, 61:64, 65:68, 69:72, 73:76, 77:80, 81:84, 85:88,
89:92, 93:96, 97:100, 101:104, 105:108, 109:112, 113:116,
117:120, 121:124, 125:128, 129:132), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -33L), .drop = TRUE))
> dput(black_line)
structure(list(Month = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L,
2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 6L,
6L, 7L, 7L, 7L, 7L), levels = c("5", "6", "7", "8", "9", "10",
"11"), class = "factor"), Zone = c("Crocodile", "Rankin", "West",
"Whipray", "Crocodile", "Rankin", "West", "Whipray", "Crocodile",
"Rankin", "West", "Whipray", "Crocodile", "Rankin", "West", "Whipray",
"Crocodile", "Rankin", "West", "Whipray", "Crocodile", "Rankin",
"West", "Whipray", "Crocodile", "Rankin", "West", "Whipray"),
q1 = c(`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0,
`25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0, `25%` = 0), median = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0), mean = c(0, 0.106060606060606, 0.0666666666666667,
0.0175438596491228, 0, 0.166666666666667, 0.2, 0.0350877192982456,
0.0166666666666667, 0.121212121212121, 0.283333333333333,
0.0350877192982456, 0.0166666666666667, 0.227272727272727,
0.25, 0.0714285714285714, 0.05, 0.225806451612903, 0.344262295081967,
0.181818181818182, 0.0333333333333333, 0.409090909090909,
0.327868852459016, 0.315789473684211, 0.0833333333333333,
0.287878787878788, 0.233333333333333, 0.140350877192982),
q3 = c(`75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0,
`75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0, `75%` = 1,
`75%` = 0, `75%` = 0, `75%` = 0, `75%` = 0.25, `75%` = 0,
`75%` = 0, `75%` = 0, `75%` = 1, `75%` = 0, `75%` = 0, `75%` = 1,
`75%` = 1, `75%` = 1, `75%` = 0, `75%` = 1, `75%` = 0, `75%` = 0
), uci_freq = c(upper = 0, upper = 0.182335650126033, upper = 0.131648631450605,
upper = 0.0526884336639978, upper = NA, upper = 0.258984399139491,
upper = 0.304202963660389, upper = 0.0843438862608657, upper = 0.0500165896348044,
upper = 0.202059590802751, upper = 0.400722364352095, upper = 0.0843438862608657,
upper = 0.0500165896348044, upper = 0.331082480573536, upper = 0.362803017099405,
upper = 0.141022237982053, upper = 0.106776273526635, upper = 0.332853890196155,
upper = 0.466957854450614, upper = 0.287047054248007, upper = 0.0800958443919204,
upper = 0.530883712461989, upper = 0.449094950922079, upper = 0.440221687017866,
upper = 0.155333777605115, upper = 0.400037540553448, upper = 0.343515615362458,
upper = 0.233334679969644), lci_freq = c(lower = 0, lower = 0.0297855619951795,
lower = 0.00168470188272793, lower = -0.0176007143657521,
lower = NA, lower = 0.0743489341938427, lower = 0.0957970363396107,
lower = -0.0141684476643745, lower = -0.0166832563014711,
lower = 0.0403646516214918, lower = 0.165944302314571, lower = -0.0141684476643745,
lower = -0.0166832563014711, lower = 0.123462973971918, lower = 0.137196982900595,
lower = 0.00183490487509033, lower = -0.00677627352663479,
lower = 0.118759013029651, lower = 0.22156673571332, lower = 0.0765893093883564,
lower = -0.0134291777252537, lower = 0.287298105719829, lower = 0.206642753995954,
lower = 0.191357260350555, lower = 0.011332889061552, lower = 0.175720035204128,
lower = 0.123151051304209, lower = 0.0473670744163205), col = c("mean",
"mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean",
"mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean",
"mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean",
"mean", "mean", "mean")), row.names = c(NA, -28L), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"), groups = structure(list(Month = structure(1:7, levels = c("5",
"6", "7", "8", "9", "10", "11"), class = "factor"), .rows = structure(list(
1:4, 5:8, 9:12, 13:16, 17:20, 21:24, 25:28), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -7L), .drop = TRUE))
Read more here: Source link