Visualizando actualizaciones taxonómicas de aves
Este es el primer post en torno a los nombres científicos de las aves, centrado en visualizar lo numeroso de los cambios de cerca de 2,143 especies de aves de Norte y Centroamérica.
Las actualizaciones taxonómicas ocurren cuando la autoridad (en este caso, de aves de Norteamérica, AOU) revisa la literatura científica donde se reporta con pruebas -a menudo genéticas, que una "especie" en realidad es otra que ya estaba descrita por otra persona, y toman el nombre del primer registro; hay mucho más complejidad en este tema que no domino.
Aquí se presentan dos tipos de visualizaciones: el tradicional gráfico de barras y la gráfica de redes; las dos representan las mismas variables de los mismos datos; el de barras resalta los cambios más grandes, mientras que el de redes acentúa mucho las interacciones múltiples.
En las gráficas podemos ver actualizaciones muy relevantes por ser mútiples o más numerosas que las otras: como el cambio de 9 especies de Picoides a Dryobates, la integración de cinco géneros (Aphriza, Eurynorhynchus, Limicola, Philomachus y Tryngites) a Calidris, o la separación del género Hemignathus en cuatro géneros. También se incluye una gráfica con todos los géneros invalidados.
Y, naturalmente, el código.
library(stringr)
library(rvest)
library(dplyr)
library(foreach)
library(tidyr)
library(lubridate)
library(ggplot2)
library(forcats)
library(igraph)
library(dutchmasters)
url <- "http://checklist.aou.org/taxa/archive?page=%s"
foreach(i=2:8, .combine=rbind) %do% {
sprintf("http://checklist.aou.org/taxa/archive?page=%s", i) %>%
read_html() %>% html_nodes("p") %>%
html_text() %>% as_tibble() %>% separate(value, into = c("date", "move"), sep=": ")
} -> aou_moves
sprintf("http://checklist.aou.org/taxa/archive") %>%
read_html() %>% html_nodes("p") %>%
html_text() %>% as_tibble() %>% separate(value, into = c("date", "move"), sep=": ") %>%
rbind(., aou_moves) -> aou_moves
aou_moves %>% mutate(move_year = year(as.Date(date))) %>%
ggplot(aes(move_year)) + geom_bar(width=.8, fill="cornsilk4") +
labs(title="Número de cambios por año", subtitle="http://checklist.aou.org/taxa/",
caption="datamarindo.blogspot.mx, CC-by-SA") +
xlab("") + ylab("Cuenta")
ggsave("aou_by_year.png")
aou_moves %>% mutate(nuevo=stringr::str_match(move, "(?<=synonym ).*(?= )")) %>%
mutate(genus=stringr::word(move,1), move_year = year(as.Date(date))) %>%
group_by(genus, nuevo, move_year) %>% count() %>% group_by(genus) %>%
mutate(ea=row_number()) %>% mutate(chup=paste(genus, ea)) %>%
filter(move_year != 2016) %>%
ggplot(aes(fct_rev(chup), n, fill=factor(move_year), label=nuevo)) +
geom_bar(stat="identity") + coord_flip() +
scale_fill_brewer(type = "qual") + geom_text(size=2.7, fontface="italic") +
labs(fill="year", caption="datamarindo.blogspot.mx, CC-by-SA", title="Cambios taxonómicos") +
xlab("Nombre invalidado") + ylab("No. de cambios") +
theme(axis.text.y = element_text(face="italic"))
ggsave("aou_old_new.png", width = 5.3, height = 8)
Comentarios
Publicar un comentario