BookmarkSubscribeRSS Feed
_user
Calcite | Level 5

Hello All , 

My Statistician is looking for something similar to it 

 

in a single plot, plot changes from Baseline to  V1 and V7 stratified by treatment using boxplots that are complemented with jitter to show

  • occurrence (yes,no) of XXX (by jitter shape feature)
  • Prior use of Treat A {yes,no} (by jitter color feature)

State number of samples available for each visit and treatment arm within the plot.

 

I do not have example data to show , I am looking for an example that is similar to this . Can anybody give me an example or reference to existing example ? 

4 REPLIES 4
PGStats
Opal | Level 21

Adding an example graph (drawn by hand, even) would help a lot to understand your question.

PG
ballardw
Super User

Coming up with some rough example data may help even structure the details of your question. As it is I am not sure if we are discusging 4 variables, 12 variables or something in between.

 

A comment on changing appearance of items in general based on the value of another variable: The typical approach involves a single group variable. So it appears that you would have to reduce the combinations reference here:

occurrence (yes,no) of XXX (by jitter shape feature)

Prior use of Treat A {yes,no} (by jitter color feature)

to a single variable that indicates the combination of shape and color

Then a DATTRMAP keyed to the value of that single variable could assign the color and marker shape when that variable is used as the group variable

 

_user
Calcite | Level 5

All I agree with you all about  mock , when I asked the statistician he referred this is in his mind using R code 

 

 

p <- ggplot(data = Data, aes(y=Chg To Baseline ,  x=  VisitBy TRT01 Agroup Factor))
p + geom_boxplot()  +  theme_bw() + geom_jitter(aes(colour = Prior use of Treat A {yes,no}  , shape= occurrence (yes,no) of XXX ))

 

Well not sure I am right or wrong but 

 

While searching for an Example I came across this example by Sanjay Matange at his location but need to add a second Jitter to it 

 

https://blogs.sas.com/content/graphicallyspeaking/2015/12/23/box-plot-with-stat-table-and-markers/#p...

https://blogs.sas.com/content/graphicallyspeaking/files/2015/12/Box_Stat_Scatter.txt

 

data merged;
  set sashelp.heart 
         sgplotdata(where=(value ne . and 
                                stat in ('Q1' 'Q3' 'STD')));
run;

 

proc sgplot data=mergedGroup2;
  label value='STD';
  format std 5.2 q1 q3 4.1;
  vbox cholesterol / category=deathcause group=sex nooutliers 
            nofill grouporder=ascending name='a';
  scatter x=deathcause y=cholesterol / group=sex groupdisplay=cluster 
                 grouporder=ascending jitter
                markerattrs=(symbol=circlefilled size=5) 
               transparency=0.95 clusterwidth=0.7;
  xaxistable q1 / x=cat class=grp classdisplay=cluster colorgroup=grp location=inside classorder=ascending;
  xaxistable q3 / x=cat class=grp classdisplay=cluster colorgroup=grp location=inside classorder=ascending;
  xaxistable std / x=cat class=grp classdisplay=cluster colorgroup=grp location=inside classorder=ascending;
  xaxis display=(nolabel);
  keylegend 'a' / linelength=24;
run;

ballardw
Super User

Since I don't grok r then that doesn't help me at all.

Do note that your example uses a single group variable to control appearance.

 

This would create the combinations of values, uses the SASHELP.CLASS data set you should have available.

Proc sql;
   create table groups as
   select distinct sex,age,'JitterGrp' as id, catx('_',sex,age) as value
   from sashelp.class
   ;
quit;

The variables ID and Value are required names for a DATTRMAP data set.

 

Use a data step to add any discrete attributes you want such as markercolor markersize markersymbol for each of the values.

 

Add a variable to your data set for grouping using the same syntax as used to make the value variable.

Add the Dattrmap= option to SGPLOT or SGPANEL proc statement.

Use the grouping variable as the GROUP= option and indicate the ATTRID= the value of ID you associate with the group values, JitterGrp above.

Note that a single Dattrmap dataset may have multiple definitions which is why the ID values  and attrid= assignment are required when using this option.

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1697 views
  • 0 likes
  • 3 in conversation