06-10-2013 04:21 PM
I have a dataset with summary statistics (OR and Confidence Intervals) for a number of centers. I would like to plot these in an increasing order on the x-axis. SCATTER does not respect discereorder=data and orders the x-axis by x-variable. Discrete x-axis routines (VLine, etc.) do not offer a way to display the confidence interval. So far the best I can do is to suppress the display of x-axis values and use MARKERCHAR to get the values of the center variable. However, it get the centers inside the figure.
do TID=1 to 10;
OR = exp(rannor(0));
SE = ranuni(0);
Lower = exp(log(OR)-1.96*SE);
Upper = exp(log(OR)+1.96*SE);
L = -1;
proc sort data=c; by OR;
proc sgplot data=c;
scatter x=TID y=OR / yerrorlower=Lower yerrorupper=Upper;
xaxis type=discrete discreteorder=data; /* values are displayed in an increasing order of TID */
proc sgplot data=c noautolegend;
scatter x=OR y=OR / yerrorlower=Lower yerrorupper=Upper;
scatter x=OR y=L / markerchar=TID;
xaxis type=discrete display=(novalues) label='TID';
The second plot gets me close to what I want but I suspect that there has to be a way use a different variable to display values of the x-axis.
07-01-2013 05:57 PM
I ended up calculating a rank variable for the x-axis and creating a format for the ranks that contain the values of the third variables for the ranks.