Data visualization with SAS programming

Box plot with two Jitter variables example ?

Reply
Occasional Contributor
Posts: 7

Box plot with two Jitter variables example ?

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 ? 

Esteemed Advisor
Posts: 5,399

Re: Box plot with two Jitter variables example ?

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

PG
Super User
Posts: 13,046

Re: Box plot with two Jitter variables example ?

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

 

Occasional Contributor
Posts: 7

Re: Box plot with two Jitter variables example ?

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;

Super User
Posts: 13,046

Re: Box plot with two Jitter variables example ?

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.

Ask a Question
Discussion stats
  • 4 replies
  • 116 views
  • 0 likes
  • 3 in conversation