/*
You could try options:
fitpolicy= VALUESROTATE=
*/
data have;
input study $ group : $20. value1 value2 sub_group $;
group2=scan(group,-1,'/');
cards;
study1 001/placebo 119 1 Allerg1
study1 001/placebo 115 8 Allerg2
study1 002/trt 112 4 Allerg1
study1 003/trt 112 2 Allerg1
study1 003/trt 112 6 Allerg2
study1 003/trt 110 2 Allerg3
study2 001/placebo 1129 . Allerg1
study2 001/placebo 1125 . Allerg2
study2 002/trt 1122 . Allerg1
study2 003/trt 1122 . Allerg1
study2 003/trt 1122 . Allerg2
study2 003/trt 1120 . Allerg3
;
proc format;
picture fmt
low-high='00009mg';
run;
ods graphics/height=10in width=10in noscale;
proc sgpanel data=have noautolegend nocycleattrs pad=0px;
panelby study/layout=panel columns=2 onepanel novarname ;
hbarparm category=group response=value1/group=sub_group fillpattern nofill groupdisplay=cluster datalabel=sub_group;
hbarparm category=group response=value2/group=sub_group groupdisplay=cluster;
colaxis display=(nolabel) fitpolicy=ROTATEALWAYS VALUESROTATE=vertical values=(0 to 1200 by 50) valuesformat=fmt.;
rowaxis display=none colorbands=even;
rowaxistable group2/ position=left VALUEJUSTIFY=right labelattrs=(color=white size=0) valueattrs=(size=10);
run;
... View more