It’s worth it to have a cost of, unfortunately, some gun deaths every single year so that we can have the Second Amendment to protect our other God given rights.
~ Charlie Kirk
Charlie Kirk was killed on September 10, 2025. On the same day in Evergreen CO, two students were critically wounded during a shooting at school. Kirk's death resulted in politicians and pundits either declaring him a martyr or a victim of his own rhetoric.
Before September 10, I knew nothing about Charlie Kirk. From what I can gather since then, he shared views similar to those of many on the US right: contempt for LGBQ folks, trans people, black and brown people, and just about anyone not white, male, and christian. Flags were ordered to be flown at half-mast in honor of Kirk. The students shot in Colorado barely received thoughts and prayers.
The news coverage of the Kirk shooting prompted me to look at shooting incidents, in particular school shootings.
2025 School Shootings in the USA
I decided to look at US school shootings for this year. I focused on the US because I live in the US and no other developed country tolerates the level of school violence that the US does. On September 15, I downloaded 1518 records of gunfire incidents in US schools between January 17, 2013 and September 10, 2025 from EveryTown. The September 10, 2025 data includes the two students from Evergreen CO and Charlie Kirk. Kirk was shot on the campus of Utah Valley University.
I filtered the records for the year 2025.
library(tidyverse) df_school <- read_csv('data/everytownresearch-gunfire-on-school-grounds.csv', name_repair = 'universal') df_school_2025 <- df_school %>% filter(Incident.Date >= as.Date("2025-01-01"))
shooting_by_state <- df_school_2025 %>% group_by(State) %>% count(State) %>% arrange(desc(n)) %>% mutate(State_name = state.name[match(State, state.abb)]) %>% rename(Shootings = n)
df_states <- data.frame(State_name = state.name, State = state.abb, Shootings = 0 ) shooting_all_states <- df_states %>% rows_update(shooting_by_state) state_data <- data.frame( region = tolower(state.name), value = shooting_all_states$Shootings ) # state_centers is in base state_centers <- as.data.frame(state.center) state_centers$region <- state.name state_centers$value <- shooting_all_states$Shootings state_centers$label <- paste(state_centers$region, "\n", state_centers$value) #us_map is in mapdata library ggplot() + geom_polygon(data = us_map, aes(x = long, y = lat, group = group), fill = "white", color = "black") + geom_text(data = state_centers, aes(x = x, y = y, label = label), color = "darkblue", size = 2.5, fontface = "bold") + coord_fixed(1.3) + theme_void() + labs(title = "US States with Names and Values")
No comments:
Post a Comment