Hi All,
I am trying to complete a boxplot, but the group order in figure is not what I want. As in the figure below, I want the group order is E9.5, E10.5, E11.5. And here is my code:
proc sgplot data=lab;
vbox lin__1 / category=group group=group gropdisplay=cluster
lineattrs=(pattern=solid) whiskerattrs=(pattern=solid);
xaxis display=(nolabel);
yaxis grid;
run;
Any way can change it?
Thanks,
Chen
Lots of options, but a simple way is to sort the data in the data set and then use
the GROUPORDER=DATA option on the VBOX statement.
Another option is to use CATEGORY= instead of GROUP=. Then you can set the values by using the XAXIS statement, as this example shows:
proc sgplot data=sashelp.cars;
vbox mpg_city / category=origin;
xaxis type=discrete values=('USA' 'Asia' 'Europe');
run;
Hi Chen,
You can try out the grouporder option within vbox. Another options that will definitely work is to create a format based on the variable group. So you can create a numeric column based on group, i.e. groupn, and that will have the values, 1, 2 and 3. Then you can use that numeric variable in the plot: i.e.
proc format;
value grouporder 1 = "E9.5"
2 = "E10.5"
3 = "E11.5";
run;
proc sort data = lab;
by groupn;
run;
proc sgplot data=lab;
vbox lin__1 / category=groupn group=groupn gropdisplay=cluster
lineattrs=(pattern=solid) whiskerattrs=(pattern=solid);
xaxis display=(nolabel);
yaxis grid;
format groupn grouporder.;
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.