Consider this sample
data plotdata(keep=group id subgroup metric);
do group = 'A', 'B';
do subgroup = 2, 4, 6, 8;
do _n_ = 1 to 15;
id = (group='B') * 100 + _n_;
metric = rand('integer', 25, 50);
output;
end;
end;
end;
run;
proc sgpanel data=plotdata;
panelby group;
vbox metric / group = subgroup;
colaxis label='Subgroup' grid;
run;
ods html close;
What is wanted is a plot showing the same boxes, but each group panel showing a colaxis with the subgroup values (2,4,6,8) as tic marks and the boxes above the marks.
I would turn off the legend with SGPANEL option NOAUTOLEGEND
After adding the CATEGORY option, you might also want to add the NOAUTOLEGEND option to the SGPANEL procedure statement. That way, the legend is suppressed. It does not add anything to the graph once you display the tick marks.
proc sgpanel data=plotdata noautolegend;
panelby group;
vbox metric / group = subgroup category = subgroup;
colaxis label='Subgroup' grid;
run;
Just add CATEGORY=subgroup to your VBOX statement:
vbox metric / group = subgroup category = subgroup;
After adding the CATEGORY option, you might also want to add the NOAUTOLEGEND option to the SGPANEL procedure statement. That way, the legend is suppressed. It does not add anything to the graph once you display the tick marks.
proc sgpanel data=plotdata noautolegend;
panelby group;
vbox metric / group = subgroup category = subgroup;
colaxis label='Subgroup' grid;
run;
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
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.