Use conditional logic to determine placement. The %PLACE macro provides an alternative to using the PLACEMENT= option. The higher the value of n , the more freedom PROC PLOT has to place labels.
%macro place(n); %if &n > 13 %then %let n = 13; placement=( %if &n <= 0 %then (s=center); %else (h=2 -2 : s=right left); %if &n = 1 %then (v=1 * h=0 -1 to -2 by alt); %else %if &n = 2 %then (v=1 -1 * h=0 -1 to -5 by alt); %else %if &n > 2 %then (v=1 to 2 by alt * h=0 -1 to -10 by alt); %if &n > 3 %then (s=center right left * v=0 1 to %eval(&n - 2) by alt * h=0 -1 to %eval(-3 * (&n - 2)) by alt * l=1 to %eval(2 + (10 * &n - 35) / 30)); ) %if &n > 4 %then penalty(7)=%eval((3 * &n) / 2); %mend;