Xanthippe Stevens and Larry Hoyle Policy Research Institute The University of Kansas Visualizing Census Data
Conveying Racial Data with PROC GPLOT proc sql; select max(v_value), max(v_value)/4 into :maxval, :scale from race00; quit; axis1 … axis2 order=(0 to &maxval. by &scale.) pattern1 color=white value=msolid; pattern2 color=blue value=msolid; proc gplot data=hilo; plot lo*v_year hi*v_year / overlay areas=2 haxis=axis1 vaxis=axis2; run;
Congressional Redistricting Data with PROC GSLIDE if first.segment then do row=line; line=1; xsys = "2"; ysys = "2"; function="poly"; when= 'A'; style="msolid"; output; end; else do row=line; function = "polycont"; when= 'A'; xsys = "2"; ysys = "2"; line = 1; style="msolid"; output; end; run; data annoplace; length function color $8; set city (keep=x y line type tlid placer segment); by placer segment;
Congressional Redistricting Data with PROC GSLIDE data anno; /*concatenate annotated county and city data*/ set annocnty annoplace; run; goptions reset=all gunit=pct border device=gif gsfname=dist3map ftext=swissb htitle=6 htext=3; proc gslide annotate=anno; run; quit;
Congressional Redistricting Data with PROC GMAP proc gmap map=mapset data=dist3; id cousubr; choro popvar/levels=6 coutline=black; run;
Population Data with PROC GMAP data anno; length function style color$8; set city (keep=x y city value); xsys='2'; ysys='2'; hsys="1"; style='pempty'; position='5'; color='blue'; x=x; y=y; function='pie'; angle = 0; rotate= 360; valrange=&maxval-&minval; size=.5+(value/valrange)*5; line=0; when='A'; output; run;
Population Data with PROC GMAP goptions reset=global gunit=pct border cback=white device=gif570 gsfname=giffile ctext=black ftext=swiss htitle=6 htext=3; title1 'Kansas Cities, Population 2000'; footnote1 j=r 'Source: U.S. Census Bureau '; proc gmap map=countymap data=blanks; id county; choro cfill/discrete nolegend coutline=cxCCCCCC annotate=anno; run; quit;
Data with PROC GMAP and ACTIVEX data mapset; set maps.uscounty; where state=20; length fips 8; fips=county+20000; run; goptions reset=global device=activex transparency; ods html body=”&varname..html” path=ODSOUT; proc gmap map=mapset data=ksdata; id fips; prism &varname./ discrete nolegend coutline=black; run; quit; ods html close;
Drill-down Maps using PROC GMAP and JAVA ods listing close; ods html file="&geo..html" path=ODSOUT archive= ' / k sdata/sashttp/java/mapapp.jar' parameters=("DRILLDOWNMODE"= "HTML") parameters=("DRILLPATTERN"= ' ippbrwww/city.pl?cityfips= {&txtplace}' ) parameters=("BACKCOLOR"= "FFFFFF");
proc gmap map=temp data=temp; id idvar; choro txtplace/discrete nolegend coutline=black; run; ods html close; ods listing; quit; Drill-down Maps using PROC GMAP and JAVA
Proportional Shading Using Data Step and PROC GMAP
value shade __________________ 1 CXF1F1FF 4 CXEBEBFF 9 CXE0E0FF 16 CXD1D1FF 25 CXBEBEFF 36 CXA7A7FF 49 CX8C8CFF 64 CX6C6CFF 81 CX4848FF 100 CX2020FF
Proportional Shading Using Data Step and PROC GMAP goptions colors=( CXF1F1FF CXEBEBFF CXE0E0FF CXD1D1FF CXBEBEFF CXA7A7FF CX8C8CFF CX6C6CFF CX4848FF CX2020FF );
Proportional Shading Using Data Step and PROC GMAP Allen Doniphan <TD bgcolor="#CCCCFF" colspan=15 align="center">PRECIPITATION (INCHES)
Proportional Shading Using Data Step and PROC GMAP /* print the cells */ put '<TD bgcolor="#' shade +(-1) '"> ' ' county cntyfmt. ' ' '<TD align="char“ char="."> ' value best7. ' ';
Glyph Map using PROC GMAP
%macro shades(var=, lablvar=, data=, loshade=0, hishade=255, midval=xmax/2-xmin/2);
Shade from red to yellow if &var < (&midval) then do; imval=int( &loshade + (&var-xmin) * ( (&hishade-&loshade)/((&midval)-xmin) )); shade = 'CX' || 'FF' || put(imval, hex2.) || '00' ; end; Glyph Map using PROC GMAP
Shade from yellow to green else do; imval=int( &loshade + (&var-(&midval)) * ( (&hishade-&loshade)/(xmax-(&midval)) )); shade = 'CX' || put(&hishade - imval + &loshade,hex2.)|| 'FF' ||'00'; end; Glyph Map using PROC GMAP
Data Step Graphics Interface /* FEMALES */ barxleft=&grwdth+ &leftmrg+ &cntrmrg; barxright=floor(&grwdth+ &leftmrg+ &cntrmrg+ barlenF); rc=gdraw('bar', barxleft, barybot, barxright, barytop);
Custom Area SF1 Profile Reports
Defining a new area
AL ******
Defining a new area
SF1 Profile for custom area
Defining an area from an address
Recalling or Using a Previous Defined Area
SF1 Profile for custom area
SAS code for the examples in this paper can be found at Larry Hoyle (785) Xan Stevens (785) Policy Research Institute The University of Kansas 1541 Lilac Lane, Suite 607 Lawrence, Kansas