I am creating a swimmer plot using the HIGHLOW statement in PROC SGPLOT to show how long a subject has been on our study. In addition, I want to add an arrow on the end of a bar to denote that a subject is still active on our study; otherwise, there is a flat end. My issue is that if a subject has recently joined our study, their time on study will be quite short (e.g., see row 11 in the data below--only on study for 1 week). A short study time will result in the arrow not showing up as the end cap. I was reading through the SAS documentation for PROC SGPLOT, and I found the following statement: "Restriction:Arrow heads are not displayed for very short bars. Bar height must be at least twice the size of the arrow heads in order for the arrow heads to appear. " My question here is this: Is there a work around for this restriction, or do I need to manually watch for these and maybe add an asterisk using the highlabel option and footnote the bars that are influenced? I have thought about adding a condition to automatically add the asterisk, but I think the length of the bar will change every time I increase the length of the x-axis, so it isn't very consistent. I'm not sure how to accommodate that. proc format; value schedule 2.5='TIW' 8.5='QW'; run; data swimmer; input N SCHEDULE $ DOSE TIMEONSTUDY ACTIVE $; format N schedule. dose 5.2; if active='Y' then ACTIVECAP='FilledArrow'; BASE=0; cards; 1 TIW 0.2 10.5714 N 2 TIW 0.3 13.5714 N 3 TIW 0.45 7.5714 N 4 TIW 0.6 6.5714 N 6 QW 0.3 7 N 7 QW 0.45 22 N 8 QW 0.6 4 N 9 QW 0.8 10 Y 10 QW 1.0 6.1429 Y 11 QW 1.25 1 Y ; run; proc sgplot data=swimmer; title 'Time on Study'; footnote1 j=l height=.9 'NOTE: An arrow shows that the patient is still active on study treatment while a solid stop shows that the patient has discontinued treatment.'; highlow y=n low=base high=timeonstudy / type=bar highcap=activecap lowlabel=dose; refline 5; xaxis min=-2 max=24 grid label='Time on Study (weeks)' values=(0 to 24 by 6); yaxis reverse display=(noticks) min=1 max=11 valueshint values=(2.5 8.5) label='Dosing Schedule & Dose Level'; run;
... View more