Given the following data, how would one create daily prism maps that show the cummulative number of thefts that have occurred in each state?
pattern1 c=cxb70000;
pattern2 c=cxc71585;
pattern3 c=cxeeff3a;
data thefts;
informat theftdate date9.;
input theftdate state thefts;
cards;
20jun2013 17 50
20jun2013 18 0
20jun2013 19 10
21jun2013 17 60
21jun2013 18 10
21jun2013 19 70
;
The states are fips codes, the thefts variable already represents the cummulative number of thefts, and the basic set of maps that I want to create are similar to:
proc gmap map=maps.us data=thefts (where=(TheftDate eq '20jun2013'd));
id state;
prism thefts / coutline=black discrete nolegend;
run;
quit;
But .. I want to control the color of each state and I want each state's height to be the thefts' number on a scale from 0 to 5000.
Can that be done and, if so, how?
TIA,
Art
You can control the color of the land, and the height (and color) of the bars separately with a block map, but I don't think that's possible with a prism map (in a prism map, the height & color of the land would both be tied to 1 variable, I believe).
: I had cross-posted this to SAS-L and Joe Matise and Nat Wooding got me sufficiently close to what I am trying to do. It doesn't meet my specs 100%, but definitely comes close enough for my current need.
To keep the height standard across graphs I created a dummy fips code and assigned the maximum value to it.
I set the colors with pattern statements and then used area=state to assign the patterns.
Finally, I included a relzero option to have states with no data show zero frequencies.
i.e.,
data usmap;
set maps.us end=eof;
output;
if eof then do;
state=99;
statecode="un";
segment=1;
x=.0950000000;
y=.1600000000;
output;
segment=2;
x=.0949999999;
y=.1599999999;
output;
end;
run;
pattern1 c=cxb70000;
pattern2 c=cxc71585;
pattern3 c=cxeeff3a;
proc gmap map=usmap data=theftsovertime (where=(TheftDate eq '01FEB2010'd));
id state;
prism thefts / coutline=black levels=all nolegend area=state relzero;
run;
quit;
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.