Le US Census Bureau publie le loyer qu’un ménage typique paie dans chaque comté du pays, mis à jour chaque année, et le diffuse via une API gratuite. Avec le tidycensus package, vous pouvez extraire ces données – chiffres et les polygones de la carte pour la dessiner — en un seul appel de fonction, puis la transformer en carte nationale en une vingtaine de lignes. Ici, nous cartographions le loyer brut médian par comté pour voir où la location est chère et où elle est bon marché.
Obtenir les données
Les données proviennent du Enquête sur la communauté américaine (ACS)l’enquête continue du Census Bureau portant sur environ 3,5 millions d’adresses par an. Nous utilisons le 5 ans estimations (ici 2019-2023), qui regroupent cinq années de réponses afin que même les petits comtés ruraux obtiennent un chiffre fiable. La variable que nous voulons est B25064_001: loyer brut médian en dollars – loyer contractuel plus services publics – pour les logements occupés par les locataires.
tidycensus parle à l’API ACS, et l’API a besoin d’un clé gratuite. Demandez-en un sur api.census.gov/data/key_signup.html ; il arrive par email dans une minute. Activez-le, puis installez-le dans R une fois – après cela tidycensus le trouve automatiquement à chaque session, vous ne le mettez donc jamais dans un script que vous partagez :
library(tidycensus)
census_api_key("YOUR_KEY_HERE", install = TRUE) # run once; writes to ~/.Renviron
Avec la clé définie, chargez les packages dont nous avons besoin :
library(tidycensus) library(tigris) # shift_geometry(): repositions Alaska & Hawaii library(dplyr) library(sf) library(ggplot2) library(scales) # dollar labels library(patchwork) # combine the small-multiple maps options(tigris_use_cache = TRUE) # cache boundary files after first download
Désormais, un seul appel fait tout. Nous demandons la variable loyer à geography = "county"et — c’est ce qui fait tidycensus spécial — ensemble geometry = TRUE il télécharge donc également les limites du comté et les renvoie jointes aux données sous forme de sf objet. Sortie state unset nous donne tous les comtés du pays; shift_geometry() puis place l’Alaska et Hawaï sous les 48 inférieurs afin que la nation entière tienne dans un seul cadre.
us <- get_acs( geography = "county", variables = "B25064_001", # median gross rent (dollars) year = 2023, survey = "acs5", geometry = TRUE, resolution = "20m" # generalized boundaries: smaller, faster, fine for a national map ) us <- shift_geometry(us)
Le résultat est bien rangé sf trame de données – une ligne par comté, la valeur dans estimatesa marge d’erreur de 90 % dans moeet un geometry colonne. Regardez toujours avant de dessiner :
us # an sf object: data + polygons together ## Simple feature collection with 3222 features and 5 fields ## Geometry type: GEOMETRY ## Dimension: XY ## Bounding box: xmin: -3112200 ymin: -1697728 xmax: 2258154 ymax: 1558935 ## Projected CRS: USA_Contiguous_Albers_Equal_Area_Conic ## First 10 features: ## GEOID NAME variable estimate moe ## 1 13027 Brooks County, Georgia B25064_001 752 79 ## 2 31095 Jefferson County, Nebraska B25064_001 659 50 ## 3 51683 Manassas city, Virginia B25064_001 1835 62 ## 4 56021 Laramie County, Wyoming B25064_001 1080 29 ## 5 13135 Gwinnett County, Georgia B25064_001 1713 16 ## 6 20001 Allen County, Kansas B25064_001 685 60 ## 7 27065 Kanabec County, Minnesota B25064_001 1003 83 ## 8 28107 Panola County, Mississippi B25064_001 859 44 ## 9 31185 York County, Nebraska B25064_001 885 49 ## 10 42063 Indiana County, Pennsylvania B25064_001 786 28 ## geometry ## 1 MULTIPOLYGON (((1163909 -64... ## 2 MULTIPOLYGON (((-115252.6 3... ## 3 MULTIPOLYGON (((1580860 292... ## 4 MULTIPOLYGON (((-765818.2 5... ## 5 MULTIPOLYGON (((1073286 -32... ## 6 MULTIPOLYGON (((41912.94 35... ## 7 MULTIPOLYGON (((192562.6 95... ## 8 MULTIPOLYGON (((527838.1 -3... ## 9 MULTIPOLYGON (((-152283 398... ## 10 MULTIPOLYGON (((1383131 460... summary(us$estimate) # the spread of county rents ## Min. 1st Qu. Median Mean 3rd Qu. Max. NAs ## 253.0 742.0 848.5 928.4 1021.0 2893.0 10 sum(is.na(us$estimate)) # counties with no published estimate ## [1] 10
Deux choses à noter. Une poignée de comtés reviennent NA — principalement de petites populations que le Bureau supprime pour des raisons de confidentialité ; nous les laisserons s’afficher en gris. Et ça moe la colonne est un rappel que ce sont estimations de l’enquêtepas un recensement : le loyer d’un comté est de « 1 200 $ ± 80 $ », pas exactement 1 200 $. Pour une carte nationale, l’incertitude est faible par rapport à la portée, mais elle est là.
Cartographiez-le
Le loyer est une quantité séquentielle – de faible à élevée – donc nous la remplissons avec une palette séquentielle (la palette de Viridis). plasma), qui est sans danger pour les daltoniens et qui se lit clairement sur papier. geom_sf() dessine les polygones ; tout le reste est constitué d’étiquettes et d’un thème propre et convivial pour les cartes.
ggplot(us) +
geom_sf(aes(fill = estimate), color = NA) +
scale_fill_viridis_c(
option = "plasma",
labels = label_dollar(),
na.value = "grey85",
name = "Medianngross rent"
) +
labs(
title = "Median gross rent by county, United States",
subtitle = "American Community Survey, 2019–2023 5-year estimates",
caption = "Source: U.S. Census Bureau ACS, via the R tidycensus package"
) +
theme_void(base_size = 13) +
theme(plot.title = element_text(face = "bold"),
legend.position = c(0.92, 0.3))

Lire la carte
Le loyer médian typique d’un comté est d’environ 848 $ – mais la carte est une histoire de quelques amas lumineux sur un intérieur large et plus sombre. Le loyer court à partir de 253 $ dans le comté d’Issaquena jusqu’à 2 893 $ dans le comté de San Mateo, une propagation onze fois supérieure. Seulement environ 6% des comtés dépassent 1 500 $, et ils ne sont pas dispersés au hasard : ils se concentrent sur la côte de la Californie et dans la région de la Baie, dans le couloir Washington-Boston et dans des poches autour de Seattle, Denver et la station de montagne de l’Ouest. Étant donné que chaque nombre de ce paragraphe est calculé à partir du même objet que nous avons cartographié, le texte correspond toujours à l’image : renouez-le l’année prochaine et les deux sont mis à jour ensemble.
Les comtés les plus chers concrétisent la concentration côtière :
d |> arrange(desc(estimate)) |> transmute(County = NAME, `Median rent` = scales::dollar(estimate)) |> head(8) |> knitr::kable()
| Comté | Loyer médian |
|---|---|
| Comté de San Mateo, Californie | 2 893 $ |
| Comté de Santa Clara, Californie | 2 814 $ |
| Comté de Marin, Californie | 2 584 $ |
| Comté de San Francisco, Californie | 2 419 $ |
| Comté d’Orange, Californie | 2 352 $ |
| Comté de Contra Costa, Californie | 2 322 $ |
| Comté d’Alameda, Californie | 2 318 $ |
| Comté de Loudoun, Virginie | 2 317 $ |
Zoom sur les États
Une carte nationale aplatit ce qui se passe à l’intérieur chaque état. Le state = L’argument corrige cela – il accepte un vecteur, donc un appel extrait plusieurs états à la fois. Ici, nous prenons les quatre plus peuplés, puis dessinons chacun sur sa propre échelle de couleurs faire ressortir où se concentre la rente en chacun.
states <- c("California", "Texas", "Florida", "New York")
sc <- get_acs(geography = "county", variables = "B25064_001", state = states,
year = 2023, survey = "acs5", geometry = TRUE, resolution = "20m")
sc$state <- sub(".*, ", "", sc$NAME) # pull the state name out of "County, State"
one_state <- function(st) {
ggplot(filter(sc, state == st)) +
geom_sf(aes(fill = estimate), color = "grey92", linewidth = 0.05) +
scale_fill_viridis_c(option = "plasma", labels = label_dollar(),
na.value = "grey85", name = NULL) +
labs(title = st) +
theme_void(base_size = 12) +
theme(plot.title = element_text(face = "bold", hjust = 0.5),
legend.key.width = unit(0.35, "cm"), legend.text = element_text(size = 8))
}
(one_state("California") | one_state("Texas")) /
(one_state("Florida") | one_state("New York")) +
plot_annotation(
title = "Median gross rent by county — each state on its own colour scale",
caption = "Source: U.S. Census Bureau ACS, via the R tidycensus package",
theme = theme(plot.title = element_text(face = "bold", size = 15)))


Le motif se répète avec des variations. La Californie est chère sur presque toute sa côte, la Bay Area se situant au sommet de sa gamme. New York constitue la division la plus nette : le nord de l’État (New York, Long Island, Westchester) et le nord de l’État, uniformément bon marché. L’argent de la Floride est sur l’eau : le sud-est autour de Miami, le sud-ouest autour de Naples, l’intérieur bien moins cher. Le Texas, c’est principalement ses métropoles – Austin et Houston – mais notez le groupe brillant à l’ouest, les comtés pétroliers du bassin Permien, où la crise du logement n’a rien à voir avec une grande ville.
Une mise en garde concernant leur lecture ensemble : étant donné que chaque panneau a sa propre échelle, la même couleur signifie des loyers différents dans différents États : un comté « brillant » du Texas (environ 1 500 $) loue bien moins qu’un comté brillant de Californie (près de (2 800). Les échelles par État révèlent un *modèle* interne ; pour les *niveaux* interétatiques, utilisez plutôt une échelle partagée (“limites = range(sc)estimate, na.rm = TRUE)`).
Personnalisez-le
Rien ci-dessus n’est spécifique à la location. Changez un code de variable et vous mappez entièrement autre chose ; changement geography et tu changes la résolution :
B19013_001— revenu médian des ménagesB25077_001— valeur médiane de la maisonDP02_0154PE— ménages disposant d’un abonnement haut débit (pourcentage)geography = "tract"avec unstateetcounty— une carte au niveau du quartier d’un seul métro
Pour trouver une variable, parcourez la table ACS complète avec load_variables(2023, "acs5") et recherchez-le – il y en a des dizaines de milliers. Le schéma reste le même : get_acs() avec geometry = TRUEalors geom_sf().
C’est tout. Vous disposez désormais d’un script qui extrait un ensemble de données nationales faisant autorité, le relie à sa propre géographie, le cartographie et redirige vers n’importe quelle variable ou lieu avec un changement d’une ligne.
En rapport
PakarPBN
A Private Blog Network (PBN) is a collection of websites that are controlled by a single individual or organization and used primarily to build backlinks to a “money site” in order to influence its ranking in search engines such as Google. The core idea behind a PBN is based on the importance of backlinks in Google’s ranking algorithm. Since Google views backlinks as signals of authority and trust, some website owners attempt to artificially create these signals through a controlled network of sites.
In a typical PBN setup, the owner acquires expired or aged domains that already have existing authority, backlinks, and history. These domains are rebuilt with new content and hosted separately, often using different IP addresses, hosting providers, themes, and ownership details to make them appear unrelated. Within the content published on these sites, links are strategically placed that point to the main website the owner wants to rank higher. By doing this, the owner attempts to pass link equity (also known as “link juice”) from the PBN sites to the target website.
The purpose of a PBN is to give the impression that the target website is naturally earning links from multiple independent sources. If done effectively, this can temporarily improve keyword rankings, increase organic visibility, and drive more traffic from search results.