Publié le :
Cartographie SASHELP_ET_CREATION_INTERNE

Création d'une Carte en Gradient des États-Unis

Ce code est également disponible en : Deutsch English
En attente de validation
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.
Copié !
1DATA work.scoreperstate;
2 LENGTH state_fips $2.;
3 INPUT state_fips $ _Score_ numeric;
4 DATALINES;
501 700
602 650
704 720
805 680
906 750
1008 690
1109 710
1210 730
1311 670
1412 700
1513 740
1616 680
1717 720
1818 700
1919 690
2020 730
2121 710
2222 700
2323 680
2424 720
2525 710
2626 700
2727 690
2828 730
2929 700
3030 680
3131 720
3232 710
3333 700
3434 690
3535 730
3636 710
3737 700
3838 680
3939 720
4040 710
4141 700
4242 690
4344 730
4445 710
4546 700
4647 680
4748 720
4849 710
4950 700
5051 690
5153 730
5254 710
5355 700
5456 680
55;
56RUN;
2 Bloc de code
DATA STEP
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é !
1DATA 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 */
6RUN;
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é !
1DATA 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 */
7RUN;
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é !
1title 'Average Credit Score in Each State';
2footnote4 '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é !
1PROC SGMAP mapdata=work.states
2 maprespdata=work.scoreperstate /* Utilisation du jeu de données autonome */
3 plotdata=work.plot_data;
4 
5 esrimap
6 url='http://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Light_Gray_Base';
7 
8 choromap _Score_ / mapid=state id=state_fips /* Utilisation de state_fips pour la jointure */
9 density=1
10 numlevels=4 leveltype=none
11 colormodel=( sty greenyellow deepskyblue cornflowerblue beige)
12 name='choro';
13 
14 text x=long y=lat text=statename /
15 textattrs=(size=6pt);
16 gradlegend 'choro' / title='Average Credit Score'
17 extractscale;
18 
19RUN;
20 
21QUIT;
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.
Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« 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 »