library(tidyverse) # ggplot, lubridate, dplyr, stringr, readr...
library(praise)
Australian Frogs
The Data
This week we’re exploring 2023 data from the sixth annual release of FrogID data.
FrogID is an Australian frog call identification initiative. The FrogID mobile app allows citizen scientists to record and submit frog calls for museum experts to identify. Since 2017, FrogID data has contributed to over 30 scientific papers exploring frog ecology, taxonomy, and conservation.
Australia is home to a unique and diverse array of frog species found almost nowhere else on Earth, with 257 native species distributed throughout the continent. But Australia’s frogs are in peril – almost one in five species are threatened with extinction due to threats such as climate change, urbanisation, disease, and the spread of invasive species.
<- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/main/data/2025/2025-09-02/frogID_data.csv') |>
frogID_data mutate(month = month(eventDate),
season = case_when(
%in% c(12, 1, 2) ~ "winter",
month %in% c(3, 4, 5) ~ "spring",
month %in% c(6, 7, 8) ~ "summer",
month %in% c(9, 10, 11) ~ "fall"
month
))<- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/main/data/2025/2025-09-02/frog_names.csv')
frog_names
<- frogID_data |>
all_frogs left_join(frog_names, by = "scientificName") |>
mutate(genus = stringr::str_extract(scientificName, "^\\w+"))
New color palette
library(Polychrome)
set.seed(47)
<- createPalette(26, c("#ff0000", "#00ff00", "#0000ff"))
mycols
names(mycols) <- all_frogs |> select(genus) |> unique() |> pull()
A map
library(maps)
<- map(database = "world", region = "Australia",
australia_map plot = FALSE)
ggplot(data = australia_map,
aes(x = long, y = lat, group = group)) +
geom_polygon(fill = "white", color = "blue") +
geom_point(data = all_frogs,
aes(x = decimalLongitude,
y = decimalLatitude,
color = genus),
size = 1,
inherit.aes = FALSE) +
theme_minimal() +
theme(
panel.background = element_rect(fill = "lightsteelblue"),
panel.grid.major = element_line(color = "lightsteelblue"),
panel.grid.minor = element_line(color = "lightsteelblue2"),
axis.text = element_text(color = "black"),
axis.title = element_text(color = "black") ) +
ggtitle("Frogs in Australia") +
facet_wrap(~season) +
labs(x = "", y = "") +
scale_color_manual(values = mycols)
library(plotly)
<- ggplot(data = australia_map,
p aes(x = long, y = lat, group = group)) +
geom_polygon(fill = "white", color = "blue") +
geom_point(data = all_frogs,
aes(x = decimalLongitude,
y = decimalLatitude,
color = genus,
text = paste("common name:", commonName)),
size = 1,
inherit.aes = FALSE) +
theme_minimal() +
theme(
panel.background = element_rect(fill = "lightsteelblue"),
panel.grid.major = element_line(color = "lightsteelblue"),
panel.grid.minor = element_line(color = "lightsteelblue2"),
axis.text = element_text(color = "black"),
axis.title = element_text(color = "black") ) +
ggtitle("Frogs in Australia") +
facet_wrap(~season) +
labs(x = "", y = "") +
scale_color_manual(values = mycols)
ggplotly(p, tooltip = "genus")
Citizen science observed frogs in Australia in 2023.
praise()
[1] "You are fantastic!"