I want to look at patterns in my data of individual fish. I made a working plot in ggplot for indiviuduals with the code provided in this text. Here, I select every fish with the columnname Transmitter. This means I have to select the transmitter for every plot, which is not efficient. I have 10 unique Transmitter names which I want to visualise in 10 plots, but I want to loop this so I do not have to copy paste everything. How can I automatise this? Extra question: How can I visualise 10 plots (2 plots left, right and 5 under each other) in R so I can scan my plots quickly? Thanks in advance!
Plots: [![A69-1602-59767][1]][1] [![A69-1602-59768][2]][2]
Code for the ggplot I used:
library(spatialrisk)
library(ggplot2)
pattern2 <- Brpattern[Brpattern$Batch.location == "Medemblik",]
pattern2 <- points_in_circle(pattern2, lat_center = 52.76098, lon_center = 5.12172, lon = Longitude, lat = Latitude, radius = 1e6)
pattern2$distance_m <- pattern2$distance_m/1000
colnames(pattern2)[which(names(pattern2) == "distance_m")] <- "Distance (km)"
### Fish selection
patternME <- pattern2[pattern2$Transmitter == "A69-1602-59768",]
ggplot(patternME, aes(Date, `Distance (km)`))+
geom_point(aes(colour = Location.Receiver), size=3)+
scale_x_date(date_breaks = "months", date_labels = "%m-%Y")+
ggtitle("Batch location Medemblik") + ylab("Distance from batch location (km)") + labs(colour ="A69-1602-59768")+
theme(plot.title = element_text(hjust = 0.5))
My data:
structure(list(Day = c("29", "30", "31", "01", "02", "03", "04",
"05", "06", "07", "08", "09", "10", "11", "12", "13", "16", "19",
"20", "21", "22", "23", "03", "24", "07", "09", "11", "13", "15",
"16", "17", "18", "20", "21", "08", "24", "25", "26", "27", "28",
"29", "30", "31", "01", "02", "03", "04", "05", "06", "07", "08",
"09", "10", "11", "12", "13", "16", "19", "20", "21", "22", "23",
"30", "01", "02", "03", "04", "05", "22", "24", "25", "26", "27",
"28", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21",
"22", "08", "25", "01", "02"), Month = c("12", "12", "12", "01",
"01", "01", "01", "01", "01", "01", "01", "01", "01", "01", "01",
"01", "01", "01", "01", "01", "01", "01", "02", "02", "03", "03",
"03", "03", "03", "03", "03", "03", "03", "03", "04", "12", "12",
"12", "12", "12", "12", "12", "12", "01", "01", "01", "01", "01",
"01", "01", "01", "01", "01", "01", "01", "01", "01", "01", "01",
"01", "01", "01", "01", "02", "02", "02", "02", "02", "02", "02",
"02", "02", "02", "02", "03", "03", "03", "03", "03", "03", "03",
"03", "03", "03", "03", "03", "03", "03", "03", "03", "03", "03",
"03", "03", "03", "03", "04", "03", "04", "04"), Year = c("2019",
"2019", "2019", "2020", "2020", "2020", "2020", "2020", "2020",
"2020", "2020", "2020", "2020", "2020", "2020", "2020", "2020",
"2020", "2020", "2020", "2020", "2020", "2020", "2020", "2020",
"2020", "2020", "2020", "2020", "2020", "2020", "2020", "2020",
"2020", "2020", "2019", "2019", "2019", "2019", "2019", "2019",
"2019", "2019", "2020", "2020", "2020", "2020", "2020", "2020",
"2020", "2020", "2020", "2020", "2020", "2020", "2020", "2020",
"2020", "2020", "2020", "2020", "2020", "2020", "2020", "2020",
"2020", "2020", "2020", "2020", "2020", "2020", "2020", "2020",
"2020", "2020", "2020", "2020", "2020", "2020", "2020", "2020",
"2020", "2020", "2020", "2020", "2020", "2020", "2020", "2020",
"2020", "2020", "2020", "2020", "2020", "2020", "2020", "2020",
"2020", "2020", "2020"), Location.Receiver = c("Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ", "Ketelmeer 2 (midden) ",
"Ketelmeer 2 (midden) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ", "Ketelmeer 3 (noord) ",
"Ijssel Ijssel", "Ijssel Ijssel", "Ijssel Ijssel"), Transmitter = c("A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759", "A69-1602-59759",
"A69-1602-59759", "A69-1602-59759", "A69-1602-59759"), Batch.location = c("Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik", "Medemblik",
"Medemblik", "Medemblik", "Medemblik", "Medemblik"), BatchNr = c(1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Latitude = c(52.60896,
52.60896, 52.60896, 52.60896, 52.60896, 52.60896, 52.60896, 52.60896,
52.60896, 52.60896, 52.60896, 52.60896, 52.60896, 52.60896, 52.60896,
52.60896, 52.60896, 52.60896, 52.60896, 52.60896, 52.60896, 52.60896,
52.60896, 52.60896, 52.60896, 52.60896, 52.60896, 52.60896, 52.60896,
52.60896, 52.60896, 52.60896, 52.60896, 52.60896, 52.60896, 52.61161,
52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161,
52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161,
52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161,
52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161,
52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161,
52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161,
52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161,
52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.61161,
52.61161, 52.61161, 52.61161, 52.61161, 52.61161, 52.58222, 52.58222,
52.58222), Longitude = c(5.65573, 5.65573, 5.65573, 5.65573,
5.65573, 5.65573, 5.65573, 5.65573, 5.65573, 5.65573, 5.65573,
5.65573, 5.65573, 5.65573, 5.65573, 5.65573, 5.65573, 5.65573,
5.65573, 5.65573, 5.65573, 5.65573, 5.65573, 5.65573, 5.65573,
5.65573, 5.65573, 5.65573, 5.65573, 5.65573, 5.65573, 5.65573,
5.65573, 5.65573, 5.65573, 5.66058, 5.66058, 5.66058, 5.66058,
5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058,
5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058,
5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058,
5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058,
5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058,
5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058,
5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058,
5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058, 5.66058,
5.66058, 5.66058, 5.86477, 5.86477, 5.86477), Date = structure(c(18259,
18260, 18261, 18262, 18263, 18264, 18265, 18266, 18267, 18268,
18269, 18270, 18271, 18272, 18273, 18274, 18277, 18280, 18281,
18282, 18283, 18284, 18295, 18316, 18328, 18330, 18332, 18334,
18336, 18337, 18338, 18339, 18341, 18342, 18360, 18254, 18255,
18256, 18257, 18258, 18259, 18260, 18261, 18262, 18263, 18264,
18265, 18266, 18267, 18268, 18269, 18270, 18271, 18272, 18273,
18274, 18277, 18280, 18281, 18282, 18283, 18284, 18291, 18293,
18294, 18295, 18296, 18297, 18314, 18316, 18317, 18318, 18319,
18320, 18322, 18323, 18324, 18325, 18326, 18327, 18328, 18329,
18330, 18331, 18332, 18333, 18334, 18335, 18336, 18337, 18338,
18339, 18340, 18341, 18342, 18343, 18360, 18346, 18353, 18354
), class = "Date"), `Distance (km)` = c(39.8114372187258, 39.8114372187258,
39.8114372187258, 39.8114372187258, 39.8114372187258, 39.8114372187258,
39.8114372187258, 39.8114372187258, 39.8114372187258, 39.8114372187258,
39.8114372187258, 39.8114372187258, 39.8114372187258, 39.8114372187258,
39.8114372187258, 39.8114372187258, 39.8114372187258, 39.8114372187258,
39.8114372187258, 39.8114372187258, 39.8114372187258, 39.8114372187258,
39.8114372187258, 39.8114372187258, 39.8114372187258, 39.8114372187258,
39.8114372187258, 39.8114372187258, 39.8114372187258, 39.8114372187258,
39.8114372187258, 39.8114372187258, 39.8114372187258, 39.8114372187258,
39.8114372187258, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 39.9833461407132,
39.9833461407132, 39.9833461407132, 39.9833461407132, 53.9604508112108,
53.9604508112108, 53.9604508112108)), row.names = c(570298L,
565084L, 563855L, 530554L, 552942L, 525810L, 552035L, 539968L,
560812L, 529808L, 581237L, 567584L, 532850L, 578746L, 528980L,
563420L, 576765L, 581972L, 571917L, 539528L, 549080L, 543315L,
558992L, 562414L, 570063L, 581171L, 540686L, 580895L, 578984L,
537421L, 566652L, 575695L, 560280L, 527067L, 540127L, 567792L,
528656L, 549569L, 565553L, 560968L, 539858L, 572394L, 576133L,
576947L, 534319L, 543011L, 528409L, 557659L, 575278L, 541422L,
573611L, 531816L, 561909L, 567161L, 526719L, 526669L, 552503L,
579272L, 570394L, 576650L, 556779L, 559094L, 553772L, 531240L,
561776L, 581170L, 545572L, 548139L, 580422L, 552737L, 538357L,
574885L, 562474L, 549462L, 556328L, 533075L, 560331L, 543957L,
560719L, 529318L, 534122L, 567029L, 532939L, 525323L, 549903L,
567378L, 581894L, 528378L, 543621L, 539881L, 556999L, 572109L,
547942L, 537720L, 545126L, 547950L, 537362L, 576813L, 532197L,
548260L), class = "data.frame")
[1]: https://i.sstatic.net/weaK2.png
[2]: https://i.sstatic.net/Yyrp9.png
points_in_circle()?spatialriskpackage. Still you are correct - good questions include all non-base R libraries used.spatialriskpatternDOdefined? Could you check your question in a fresh instance of R and confirm it is reproducible, it might need a value forTransmitter == "A69-1602-59768". Also it would be a good idea to enable at least two of the 10 plots you require to be generated from the question.