La section commence par la conversion des variables X (longitude) et Y (latitude) des radians en degrés, afin de les aligner avec les types de projection attendus par la procédure CHOROMAP. Ensuite, les données de tracé sont créées en filtrant pour inclure uniquement les 48 États continentaux et en collectant les codes FIPS (Federal Information Processing Standards) des États. Un titre global et une note de bas de page sont attribués pour contextualiser le graphique. Enfin, la procédure SGMAP est exécutée, utilisant un jeu de données de carte des États, des données de réponse de population du U.S. Census Bureau 2010 (ici simulées par scoreperstate), et le jeu de données de tracé. La déclaration ESRIMAP est utilisée pour créer une carte de base, CHOROMAP pour tracer les populations des États avec un gradient de couleurs, et TEXT pour assigner les noms des États. Une légende en gradient est ajoutée avec GRADLEGEND pour une meilleure interprétation des scores de crédit moyens.
Analyse des données
Type : SASHELP_ET_CREATION_INTERNE
Les exemples utilisent les bibliothèques SASHELP.MAPS (MAPS.STATES, MAPS.USCENTER) et un jeu de données interne 'scoreperstate' créé via un DATA step pour l'autonomie de l'exemple.
1 Bloc de code
DATA STEP Data
Explication : Création d'un jeu de données factice 'work.scoreperstate' pour simuler les scores de crédit moyens par état, nécessaire pour rendre l'exemple autonome. Les codes FIPS des états sont utilisés comme identifiants.
Explication : Cette étape convertit les variables de longitude (X) et de latitude (Y) du jeu de données MAPS.STATES des radians en degrés, ce qui est nécessaire pour aligner les types de projection. Les états 2 (Alaska), 15 (Hawaï) et 72 (Porto Rico) sont exclus.
Copié !
data states;
set maps.states;
if state ^in(2,15,72); /* Exclut l'Alaska, Hawaï et Porto Rico */
x = -x * 45/atan(1); /* Conversion de la longitude en degrés */
y = y * 45/atan(1); /* Conversion de la latitude en degrés */
run;
1
DATA states;
2
SET maps.states;
3
IF state ^in(2,15,72); /* Exclut l'Alaska, Hawaï et Porto Rico */
4
x = -x * 45/atan(1); /* Conversion de la longitude en degrés */
5
y = y * 45/atan(1); /* Conversion de la latitude en degrés */
6
RUN;
3 Bloc de code
DATA STEP
Explication : Ce DATA step crée le jeu de données 'plot_data' à partir de MAPS.USCENTER, en filtrant les 48 États inférieurs et en convertissant la longitude. Il génère également le nom de l'État à partir du code FIPS et un `state_fips` formaté pour la jointure avec les données de score.
Copié !
data plot_data;
set maps.uscenter;
if state ^in(2,15,72) and ocean^='Y';
long = -long;
statename = fipstate(state); /* Récupère le code FIPS de l'état */
state_fips = put(state, z2.); /* Crée une variable state_fips à partir de 'state' pour la jointure */
run;
1
DATA plot_data;
2
SET maps.uscenter;
3
IF state ^in(2,15,72) and ocean^='Y';
4
long = -long;
5
statename = fipstate(state); /* Récupère le code FIPS de l'état */
6
state_fips = put(state, z2.); /* Crée une variable state_fips à partir de 'state' pour la jointure */
7
RUN;
4 Bloc de code
Déclarations Globales
Explication : Utilise les déclarations globales TITLE et FOOTNOTE pour définir le titre principal du graphique et une note de bas de page explicative.
Copié !
title 'Average Credit Score in Each State';
footnote4 'Map only includes the lower 48 states in the United States';
1
title 'Average Credit Score in Each State';
2
footnote4 'Map only includes the lower 48 states in the United States';
3
5 Bloc de code
PROC SGMAP
Explication : Exécute la procédure SGMAP pour générer le graphique. Elle utilise les jeux de données 'states', 'scoreperstate' et 'plot_data'. ESRIMAP définit la carte de base, CHOROMAP trace les scores de crédit moyens par état avec un dégradé de couleurs, et TEXT ajoute les noms des États. GRADLEGEND fournit une légende pour le gradient de couleurs.
Copié !
proc sgmap mapdata=work.states
maprespdata=work.scoreperstate /* Utilisation du jeu de données autonome */
plotdata=work.plot_data;
esrimap
url='http://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Light_Gray_Base';
choromap _Score_ / mapid=state id=state_fips /* Utilisation de state_fips pour la jointure */
density=1
numlevels=4 leveltype=none
colormodel=( sty greenyellow deepskyblue cornflowerblue beige)
name='choro';
text x=long y=lat text=statename /
textattrs=(size=6pt);
gradlegend 'choro' / title='Average Credit Score'
extractscale;
run;
quit;
1
PROC SGMAP mapdata=work.states
2
maprespdata=work.scoreperstate /* Utilisation du jeu de données autonome */
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
« Pour une lisibilité optimale du gradient, utilisez l'option GRADLEGEND. Elle permet d'associer précisément une nuance de couleur à une valeur de score. Si vous travaillez sur des données nationales, assurez-vous que vos codes FIPS sont normalisés (généralement sur deux caractères) pour éviter les erreurs de jointure entre vos données de réponse et vos fonds de carte »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.