I would like to create a horizontal bar chart that charts time in days. The x-axis would be total days. The bars would be the sum of 4 different times or phases, and color coded by phase. For example, building S3677 below would have a bar totaling 215 days, with each phase color coded within that bar.
The data is formatted like this:
Building phase1 phase2 phase3 phase4
S212 201 165 35 46
O254 198 144 120 58
S3677 100 25 36 54
Any suggestions?
Thanks.
First, transpose you data so that it looks like this:
Building Value Phase
S212 201 Phase1
S212 165 Phase2
S212 35 Phase3
S212 46 Phase4
...and so on.
Then, run either PROC SGPLOT or PROC GCHART:
proc sgplot data=buildings;
vbar building / response=value group=phase;
run;
proc gchart data=buildings;
vbar building / sumvar=value subgroup=phase;
run;
quit;
Hope this helps!
Dan
First, transpose you data so that it looks like this:
Building Value Phase
S212 201 Phase1
S212 165 Phase2
S212 35 Phase3
S212 46 Phase4
...and so on.
Then, run either PROC SGPLOT or PROC GCHART:
proc sgplot data=buildings;
vbar building / response=value group=phase;
run;
proc gchart data=buildings;
vbar building / sumvar=value subgroup=phase;
run;
quit;
Hope this helps!
Dan
Thanks Dan. Your answer made me realize that I need help with proc transpose more than the plotting procedures. I do not get the dataset I want when I do proc transpose data=have out=want; id building; var _all_; run;
Can you suggest a better way to transpose than I have?
This should do the trick
proc transpose data=have out=want(rename=(col1=value)) name=phase;
by building notsorted;
var phase: ;
run;
PG
Thanks PGStats!
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.