Saving Graphics Coordinates in a Control Chart

You can specify an WEBOUT= data set in any chart statement to save graphics coordinate information for a control chart. The WEBOUT= data set is an extension of the OUTTABLE= data set, which contains the subgroup summary statistics, control limits and related information found in an OUTTABLE= data set, as well as coordinate data. The additional coordinate variables are listed in Table 17.97.

Table 17.97: WEBOUT= Data Set

Variable

Description

_X1_

x-coordinate of lower left corner of primary chart subgroup bounding box

_Y1_

y-coordinate of lower left corner of primary chart subgroup bounding box

_X2_

x-coordinate of upper right corner of primary chart subgroup bounding box

_Y2_

y-coordinate of upper right corner of primary chart subgroup bounding box

_Xn_

x-coordinate for point n of the subgroup shape

_Yn_

y-coordinate for point n of the subgroup shape

_X1_2_

x-coordinate of lower left corner of secondary chart subgroup bounding box

_Y1_2_

y-coordinate of lower left corner of secondary chart subgroup bounding box

_X2_2_

x-coordinate of upper right corner of secondary chart subgroup bounding box

_Y2_2_

y-coordinate of upper right corner of secondary chart subgroup bounding box

_SHAPE_

shape of primary chart subgroup bounding area

_NXY_

number of points defining primary chart subgroup bounding area

_GRAPH_

name of primary chart graphics entry

_GRAPH2_

name of secondary chart graphics entry

_DXMIN_

value of lowest major tick mark on horizontal axis

_DXMAX_

value of highest major tick mark on horizontal axis

_XMIN_

x-coordinate of lowest major tick mark on horizontal axis

_XMAX_

x-coordinate of highest major tick mark on horizontal axis

_DYMIN_

value of lowest major tick mark on vertical axis

_DYMAX_

value of highest major tick mark on vertical axis

_YMIN_

y-coordinate of lowest major tick mark on vertical axis

_YMAX_

y-coordinate of highest major tick mark on vertical axis

_XMIN2_

x-coordinate of lowest major tick mark on secondary chart horizontal axis

_XMAX2_

x-coordinate of highest major tick mark on secondary chart horizontal axis

_DYMIN2_

value of lowest major tick mark on secondary chart vertical axis

_DYMAX2_

value of highest major tick mark on secondary chart vertical axis

_YMIN2_

y-coordinate of lowest major tick mark on secondary chart vertical axis

_YMAX2_

y-coordinate of highest major tick mark on secondary chart vertical axis


You can use the coordinate data saved in the WEBOUT= data set to create a clickable control chart in a SAS/AF application. The variables _X1_, _Y1_, _X2_ and _Y2_ contain the coordinates of the lower left and upper right corners of a rectangular bounding box associated with each subgroup on the primary chart. This box defines the clickable area associated with the subgroup when the chart is incorporated into a SAS/AF application. It contains the symbol used to plot the subgroup data, or the junction of line segments representing the subgroup if no plotting symbol is used. The variables _X1_2_, _Y1_2_, _X2_2_ and _Y2_2_ contain coordinates of the corners of subgroup bounding boxes for a secondary chart.

If you use the BOXCHART statement, each subgroup is represented by a box-and-whisker plot rather than a single symbol. The subgroup’s bounding box is defined by the sides of the box-and-whisker plot and its lower and upper quartiles, regardless of the BOXSTYLE= value in effect.

If you specify the STARVERTICES= option, each subgroup is represented by a polygon or star with a vertex corresponding to each of the STARVERTICES= variables. The clickable area for a subgroup is the polygon with these vertices, regardless of the STARTYPE= value specified. In the WEBOUT= data set the value of the _SHAPE_ variable is POLY and the _NXY_ variable contains the number of vertices in the polygon. The variables _Xn_ and _Yn_, where n = 1 to the value of _NXY_, contain the coordinates of the vertices of a subgroup’s polygon. When the STARVERTICES= option is not used, the value of _SHAPE_ is always RECT and the value of _NXY_ is always 2.

When a control chart spans multiple panels (pages), the panels reside in separate SAS graphics entries. The _GRAPH_ character variable records the name of the graphics entry containing the panel on which a given subgroup is plotted. This is the same name that appears in the PROC GREPLAY menu. When the SEPARATE option is used, primary and secondary charts are displayed on different graphics entries. The _GRAPH2_ variable records the name of the graphics entry containing the secondary chart panel where a subgroup appears. When the SEPARATE option is not used, the values of _GRAPH_ and _GRAPH2_ will be the same for a given subgroup.

The variables _DXMIN_, _DXMAX_, _XMIN_ and _XMAX_ provide the data values and graphics coordinates associated with the lowest and highest major tick marks on the horizontal (subgroup) axis. The variables _DYMIN_, _DYMAX_, _YMIN_ and _YMAX_ provide the analogous values for the vertical axis. Through a simple linear transformation in your SAS/AF application you can use this information to convert from percent screen units to data units and vice versa.

The variables _XMIN2_ and _XMAX2_ contain the graphics coordinates associated with the lowest and highest major tick marks on the horizontal axis of a secondary chart. No variables for the corresponding data values are required, since they are always identical to those for the primary chart.

The variables _DYMIN2_, _DYMAX2_, _YMIN2_ and _YMAX2_ contain the data and coordinate values for the lowest and highest tick marks on the vertical axis of a secondary chart. A SAS/AF program receives the (x,y) coordinates for the location of the cursor when the user clicks on a subgroup data point. The application can determine whether (x,y) lies within any of the boxes whose coordinates are saved in the WEBOUT= data set. If so, the program can determine which subgroup was selected on the primary or secondary chart and can check the _TESTS_ and _TESTS2_ variables included in the WEBOUT= data set to determine whether an out-of-control condition has been signaled.

Notes:

  1. Graphics coordinates are scaled in percent screen units from 0 to 100, where (0,0) represents the lower-left corner of the screen and (100,100) represents the upper-right corner of the screen. Because SAS/AF applications define the origin of the vertical axis at the top of the screen, it will be necessary to subtract the y-coordinates from 100 in your SCL program.

  2. The variables _X1_2_, _Y1_2_, _X2_2_, _Y2_2_, _GRAPH2_, _XMIN2_, _XMAX2_, _YMIN2_, _YMAX2_, _DYMIN2_ and _DYMAX2_ appear in the WEBOUT= data set only when a secondary chart is produced. A secondary chart is produced by the IRCHART, MRCHART, XRCHART and XSCHART statements and by the BOXCHART, MCHART and XCHART statements when the TRENDVAR= option is specified.

  3. When the subgroup variable is a character variable, the value of _DXMIN_ is zero and the value of _DXMAX_ is the number of subgroups in the input data set minus one.

  4. A bounding box circumscribes a point displayed on a chart and its dimensions depend on the size of the symbol marker used to display the point. If no symbol marker is specified, a small default size is used for the box. If a large number of subgroups are displayed on a panel, the subgroup symbols may overlap, so it is possible for a user to inadvertently select more than one point.