The U.S is home to a variety of cities stretching far and wide across the 50 states. With the rise of inflation, many large cities have seen a sharp decline in population due to unaffordability, among other things.
My hypothesis is that cities and states in the Southwest region of the U.S are growing faster in population and are therefore some of the most desirable places to live in 2025 and beyond.
I will use the general geographers’ consensus and define these states as:
Arizona, New Mexico, Texas, Oklahoma, Nevada, Colorado, and Utah.
This investigation will dive into population data for all U.S cities, where I will analyze the data to see if we can conclude that Southwest states and cities are doing what we hypothesized..
The data chosen is from “worldpopulationreview”, a credible site that reports accurate, up-to-date information on population numbers, growth rates, and city sizes and densities for cities all over the U.S. It has data for 359 cities, which represents every U.S city over 100,000 people.
By using population data, we’ll be able to objectively asses the “desirability” of a state, city, or region by seeing exactly who is moving in and who is leaving. This will enable us to test the hypothesis about the desirability of Southwest cities.
Loading Packages
These packages enable us to run the commands
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 3.5.2 ✔ tibble 3.3.0
✔ lubridate 1.9.4 ✔ tidyr 1.3.1
✔ purrr 1.1.0
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
cities_data %>%filter(State %in%c("Arizona", "New Mexico", "Texas", "Oklahoma","Nevada", "Colorado", "Utah")) %>%filter(X2025.Pop.... >=700000) %>%ggplot(aes(x =fct_reorder(City, Annual.Change, .desc =FALSE), y = Annual.Change,)) +geom_col(fill ="brown", color ="black") +coord_flip() +labs(x ="City", y ="% Population Change 2025", title ="Population Change for Large Cities in the Southwest")
This chart shows 2025 % change in population for all “large” cities (over 700,000 population) in the states that make up the “Southwest”.
Let’s compare this to the same type of cities in all other states.
cities_data %>%filter(!State %in%c("Arizona", "New Mexico", "Texas", "Oklahoma","Nevada", "Colorado", "Utah")) %>%filter(X2025.Pop.... >=700000) %>%ggplot(aes(x =fct_reorder(City, Annual.Change, .desc =FALSE), y = Annual.Change,)) +geom_col(fill ="grey40", color ="black") +coord_flip() +labs(x ="City", y ="% Population Change 2025",title ="Population Change for Other Large Cities")
Among cites of over 750,000 people, roughly 1/2 of the cities outside of the Southwest have declining populations, while EVERY city in the Southwest has an increasing population.
3) Density & Growth Potential
southwest_states <-c("Arizona", "New Mexico", "Texas", "Oklahoma","Nevada", "Colorado", "Utah")cities_data %>%filter(X2025.Pop.... >=250000) %>%ggplot(aes(x = Annual.Change, y = Density, color = State %in% southwest_states )) +geom_point(size =3, alpha = .7) +scale_color_manual(name ="",values =c("TRUE"="brown", "FALSE"="grey40"),labels =c("Other Cities", "Southwest Cities")) +labs(x ="% Population Change 2025",title ="Density & Population Change by Region")
This chart shows annual growth rate and population density for all small, medium, and large cities (population > 250000), segmented by Southwest vs other cities.
You can see that not only are the Southwest cities on average are growing more, they also all have predominantly low population densities. This indicates that there is a lot of empty land, meaning more growth potential.
4) What About Right Now in 2025?
southwest_states <-c("Arizona", "New Mexico", "Texas", "Oklahoma","Nevada", "Colorado", "Utah")cities_data %>%filter(Rank <=10) %>%ggplot(aes(x =fct_reorder(City, X2025.Pop...., .desc =FALSE), y = X2025.Pop...., fill = State %in% southwest_states)) +geom_col(color ="black") +scale_fill_manual(name ="",values =c("TRUE"="brown", "FALSE"="grey40"),labels =c("Other Cities", "Southwest Cities")) +coord_flip() +scale_y_continuous(labels = scales::comma) +labs (x ="City", y ="2025 Population",title ="Top 10 Most Populated U.S Cities ")
Of the top 10 most populated cities in the U.S in 2025, 5 of them are in the Southwest. No other U.S region has that many highly populated cities in one area.
5) State Level / Rural Comparison
If we look beyond just medium/large cities and instead view the states as wholes, every city included, we see similar trends.
southwest_states <-c("Arizona", "New Mexico", "Texas", "Oklahoma","Nevada", "Colorado", "Utah")cities_data %>%ggplot(aes(x = region_group, y = Annual.Change, fill = region_group)) +geom_boxplot (alpha = .8) +scale_fill_manual(values =c("Southwest"="brown", "Other"="darkgrey")) +labs(x ="Region",y ="Population Growth",title ="Population Growth: Southwest vs Other States" ) +theme(legend.position ="none")
When looking at the states as a whole (all cities included), not only does the Southwest region have a higher median population growth rate, it’s bottom 25% percentile is still greater than the average growth rate of other cities.
Although the difference may only look like 1-2%, that number makes a big difference when talking about states with millions of people.
Conclusion
We can confidently conclude that based on this data, the populations of the cities and states in the Southwest region are growing faster, and also have the potential for more long term growth than other areas of the U.S.