Displaying Spec Limits in an Inset

 /****************************************************************/
 /*          S A S   S A M P L E   L I B R A R Y                 */
 /*                                                              */
 /*    NAME: CAPISPEC                                            */
 /*   TITLE: Displaying Spec Limits in an Inset                  */
 /* PRODUCT: QC                                                  */
 /*  SYSTEM: ALL                                                 */
 /*    KEYS: Capability Analysis, Insets,                        */
 /*   PROCS: CAPABILITY                                          */
 /*    DATA:                                                     */
 /*                                                              */
 /*     REF:                                                     */
 /*    MISC:                                                     */
 /*                                                              */
 /****************************************************************/

options ps=60 ls=80;

data boxes;
   label weight='Weight in Grams';
   input weight @@;
   cards;
30.26 31.23 71.96 47.39 33.93 76.15 42.21
81.37 78.48 72.65 61.63 34.90 24.83 68.93
43.27 41.76 57.24 23.80 34.03 33.38 21.87
31.29 32.48 51.54 44.06 42.66 47.98 33.73
25.80 29.95 60.89 55.33 39.44 34.50 73.51
43.41 54.67 99.43 50.76 48.81 31.86 33.88
35.57 60.41 54.92 35.66 59.30 41.96 45.32
;

title 'Specification Limits in an Inset Box';

proc capability data=boxes noprint;
   var weight;
   spec usl=80   lsl=20   target=50
       cusl=red clsl=red ctarget=yellow;
   hist / cframe   = gray
          cfill    = green
          cbarline = white
          nospeclegend;
   inset lsl='LSL' target usl='USL'
                        / header = 'Specification Limits'
                          cframe = black
                          ctext  = black
                          cfill  = white;
   inset cpm cpk cpu cpk k cpl / header = 'Capability Indices'
                          cframe = black
                          ctext  = black
                          cfill  = white
                          format = 7.2
                          pos    = ne;
run;


proc capability data=boxes noprint;
   var weight;
   spec usl=80   lsl=20   target=50
       cusl=red clsl=red ctarget=yellow
       cright=yellow cleft=blue;
   hist / lognormal (scale=3.5 shape=.5 theta=10 noprint fill
                     color=yellow )
          cframe   = gray
          cfill    = green
          cbarline = white
          nospeclegend
          nocurvelegend;
   inset lognormal / cframe = white
                     ctext  = white
                     cfill  = green
                     pos    = ne;
run;

proc capability data=boxes noprint;
   var weight;
   spec usl=80   lsl=20   target=50
       cusl=red clsl=red ctarget=yellow
      cright=yellow cleft=blue;
   hist / lognormal (scale=3.5 shape=.5 theta=10 noprint fill
                     color=yellow )
          cframe  =  gray
          cfill    = green
          cbarline = white
          nospeclegend
          nocurvelegend;
   inset betweenpct uslpct lslpct / header='Areas Under Curve'
                     cframe = black
                     ctext  = black
                     cfill  = white
                     pos    = ne;
run;

goptions reset=all;