Some experiments with the code provided in the docs of proc sgmap, see https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/grmapref/n0j38r5ljpv8ntn1b6e5vxwc1yyl.htm for details. Tried to add a tooltip for the bubbles show the actual population of that city. Unfortunately the population is shown for Reno only. I changed the following lines in the example:
/* changed html to html5 */
ODS HTML5 path=odsout body="&name..html" style=my_map ;
/* added imagemap */
ods graphics / imagefmt=png imagename="&name" imagemap;
/* Added "tip= (population_city)" in the bubble statement */
proc sgmap
mapdata=nevada /* Map polygon geometry */
maprespdata=county_pop /* Map polygon response data */
plotdata=city_pop /* Bubble response & location data */
;
choromap group / mapid=county id=county name='counties';
bubble x=long y=lat size=population_city /
fillattrs=(color=yellow)
name='cities'
datalabel=city datalabelattrs= (color=black size=9 style=italic)
tip= (population_city);
keylegend 'counties' / title='County Population';
keylegend 'cities' / title='City Population';
run;
Mouse pointer disappeared when i took the screenshot, but was in the middle of the yellow Las Vegas bubble:
Any ideas on how to fix this?
Using SAS 9.4m7 on Windoze.
Are you getting any messages in your SAS log regarding the tip= ?
Unfortunately not, here is the log:
27 %let name=sgmpnvb2;
28 filename odsout "Ausgabe";
29
30 ods path(prepend) work.templat(update);
31 proc template;
32 define style my_map;
33 parent=styles.htmlblue;
34 class graphcolors /
35 "gdata1" = cx3182bd
36 "gdata2" = cx6baed6
37 "gdata3" = cx9ecae1
38 "gdata4" = cxc6dbef
39 "gdata5" = cxeff3ff;
40 end;
NOTE: Overwriting existing template/link: My_map
NOTE: STYLE 'My_map' has been saved to: WORK.TEMPLAT
41 run;
NOTE: Verwendet wurde: PROZEDUR TEMPLATE - (Gesamtverarbeitungszeit):
real time 0.00 seconds
cpu time 0.00 seconds
42
43 ODS HTML5 path=odsout body="&name..html" style=my_map ;
NOTE: Writing HTML5 Body file: sgmpnvb2.html
44
45 ods graphics / imagefmt=png imagename="&name" imagemap;
46
47 data city_pop (label='Nevada County Seat Populations');
48 length city $65;
49 infile datalines dlm=',';
50 input city population_city county;
51 state='NV';
52 datalines;
NOTE: The data set WORK.CITY_POP has 17 observations and 4 variables.
NOTE: Verwendet wurde: DATA statement - (Gesamtverarbeitungszeit):
real time 0.00 seconds
cpu time 0.00 seconds
70 ;
71 run;
72
73 proc geocode
74 method=city
75 data=city_pop
76 out=city_pop (rename=(x=long y=lat))
77 lookupcity=sashelp.zipcode; /* Use this if you don't have SAS GRAPH */
78 run;
NOTE: Address data set had only 17 observations. Intermediate progress times not output.
_________ Geocoding Summary _____________________________
Address data: WORK.CITY_POP
Output data: WORK.CITY_POP
CITY lookup data: SASHELP.ZIPCODE
Geocoding method: City & state
Run date: 26Nov2021
Obs processed: 17
Elapsed time: 00:00:00
Obs per minute: 1,020,000
City matches: 17
Not matched: 0
_________________________________________________________
NOTE: Verwendet wurde: PROZEDUR GEOCODE - (Gesamtverarbeitungszeit):
real time 0.01 seconds
cpu time 0.01 seconds
79
80 data county_pop (label='Nevada Counties');
81 length county_name $55;
82 infile datalines dlm=',';
83 input county_name county population_county;
84
85 statecode = 'NV';
86 /* Add five population ranges as groups to map response data. */
87 if population_county > 100000 then group='Greater than 100,000';
88 else if population_county > 10000 then group='10,000 - 100,000';
89 else if population_county > 5000 then group='5,000 - 10,000';
90 else if population_county > 1000 then group='1,000 - 5,000';
91 else group='Less than 1,000';
92
93 datalines;
NOTE: The data set WORK.COUNTY_POP has 17 observations and 5 variables.
NOTE: Verwendet wurde: DATA statement - (Gesamtverarbeitungszeit):
real time 0.00 seconds
cpu time 0.00 seconds
111 ;
112 run;
113
114 proc sort data=county_pop;
115 by descending population_county;
116 run;
NOTE: There were 17 observations read from the data set WORK.COUNTY_POP.
NOTE: The data set WORK.COUNTY_POP has 17 observations and 5 variables.
NOTE: Verwendet wurde: PROZEDUR SORT - (Gesamtverarbeitungszeit):
real time 0.01 seconds
cpu time 0.01 seconds
117
118 data nevada;
119 set mapsgfk.us_counties(where=(statecode='NV'));
120 run;
NOTE: There were 3390 observations read from the data set MAPSGFK.US_COUNTIES.
WHERE statecode='NV';
NOTE: The data set WORK.NEVADA has 3390 observations and 13 variables.
NOTE: Verwendet wurde: DATA statement - (Gesamtverarbeitungszeit):
real time 0.07 seconds
cpu time 0.06 seconds
121
122 title 'Nevada County Seats and Populations';
123
124 proc sgmap
125 mapdata=nevada /* Map polygon geometry */
126 maprespdata=county_pop /* Map polygon response data */
127 plotdata=city_pop /* Bubble response & location data */
128 ;
129 choromap group / mapid=county id=county name='counties';
130 bubble x=long y=lat size=population_city /
131 fillattrs=(color=yellow)
132 name='cities'
133 datalabel=city datalabelattrs= (color=black size=9 style=italic)
134 tip= (population_city);
135 keylegend 'counties' / title='County Population';
136 keylegend 'cities' / title='City Population';
137 run;
NOTE: Choromap boundaries drawn using LAT and LONG from map data set WORK.NEVADA.
NOTE: Verwendet wurde: PROZEDUR SGMAP - (Gesamtverarbeitungszeit):
real time 2.84 seconds
cpu time 0.14 seconds
NOTE: There were 17 observations read from the data set WORK.COUNTY_POP.
NOTE: There were 17 observations read from the data set WORK.CITY_POP.
138
139 ods html5 close;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.