Example Program and Statement Details

Example Graph

The following graph was generated by the Example Program:
Lattice Layout with External Axes

Example Program

This example shows how to externalize axes in a LAYOUT LATTICE and manage the axis features on primary Y and Y2 axes.
  • The first HISTOGRAM statement specifies YAXIS=Y2 to make the Y2 axis the primary axis for COUNT measures. The second HISTOGRAM statement specifies YAXIS=Y to make the Y axis the primary axis for PERCENT measures.
  • In order to externalize the axes within the layout, the data ranges for the axes must be unified. In the LAYOUT LATTICE statement, the ROWDATARANGE= option unifies the data ranges for the Y axes across the row. The ROW2DATARANGE= option unifies the data ranges for the Y2 axes across the row.
  • The ROWAXIS statement is used to manage axis features for the row axes. To manage the primary Y axis, a ROWAXIS statement is specified within a ROWAXES block. To manage the primary Y2 axis, another ROWAXIS statement is specified within a ROW2AXES block.
  • Within the ROWAXES block, the ROWAXIS statement consolidates Y axes in the row into a single, external Y axis and also displays grid lines. Within the ROW2AXES block, the ROWAXIS statement consolidates Y2 axes in the row into a single, external Y2 axis, but it does not alter the default features of that axis.
proc template;
  define statgraph y2axis;
    begingraph;
      layout lattice / columns=2 columngutter=10
          rowdatarange=union row2datarange=union ;
        rowaxes;
          rowaxis / griddisplay=on;
        endrowaxes;
        row2axes;
          rowaxis;
        endrow2axes;
        layout overlay;
          histogram height / scale=count yaxis=y2 ;
          histogram height / scale=percent yaxis=y ;
          densityplot height / normal();
        endlayout;
        layout overlay;
          histogram weight / scale=count yaxis=y2 ;
          histogram weight / scale=percent yaxis=y ;
          densityplot weight / normal();
        endlayout;
      endlayout;
    endgraph;
  end;

proc sgrender data=sashelp.class template=y2axis;
run;

Statement Summary

The LAYOUT LATTICE statement creates a grid of graphs that automatically aligns plot areas, data display areas, axis labels, and headers across the columns and rows of the layout. The axis data ranges can be scaled, and the axes for individual cells in the layout can be managed by row and by column using COLUMNAXIS and ROWAXIS statements. COLUMNAXIS statements are used within a COLUMNAXES or COLUMN2AXES block to externalize column axes for the layout. Similarly, ROWAXIS statements are used within a ROWAXES or ROW2AXES block to externalize row axes for the layout. Each axis block is used to manage the primary axis. The axis that is considered primary depends on the settings for the XAXIS= and YAXIS= options in plot statements that are specified within the layout:
Option Setting
Primary Axis
Axis Block to Use
XAXIS=X
X (bottom)
COLUMNAXES
XAXIS=X2
X2 (top)
COLUMN2AXES
YAXIS=Y
Y (left)
ROWAXES
YAXIS=Y2
Y2 (right)
ROW2AXES
For the specifications to take effect,
  • UNION or UNIONALL data scaling must be set for the affected columns and rows. The data scaling is set with the LAYOUT LATTICE statement’s COLUMNDATARANGE=, COLUMN2DATARANGE=, ROWDATARANGE=, and ROW2DATARANGE= options.
  • Within a COLUMNAXES or COLUMN2AXES block, one COLUMNAXIS statement should be specified for each column that contains axes that you need to manage. Both axes blocks can contain a COLUMNAXIS statement for the same column. For example, to manage the axes in the first column of the layout, the COLUMNAXES block can contain a COLUMNAXIS statement that manages the column’s X axes. The COLUMN2AXES block can contain a COLUMNAXIS statement that manages the column’s X2 axes.
  • Within a ROWAXES or ROW2AXES block, one ROWAXIS statement should be specified for each row that contains axes that you need to manage. Both axes blocks can contain a ROWAXIS statement for the same row. For example, to manage the axes in the first row of the layout, the ROWAXES block can contain a ROWAXIS statement that manages the row’s Y axes. The ROW2AXES block can contain a ROWAXIS statement that manages the column’s Y2 axes.
In addition to managing the primary axes, you can also display “secondary” axes in the grid. A secondary axis is not an independent axis. Rather, it mirrors the primary axis, but it is displayed on the opposite side and can have different display options. For example, when the X axis (bottom) is primary, you can mirror that axis with a secondary X axis at the top of the grid. Similarly, when the Y2 axis (right) is primary, you can mirror that axis with a secondary Y2 axis on the left of the grid. A secondary axis makes it easier to interpolate values in the cells that are farthest away from the primary axis. To display a secondary axis, use the DISPLAYSECONDARY= option.
For general information about managing primary and secondary axes, see Plot Data Are Mapped to a Designated Axis. For details about managing the axes within a LAYOUT LATTICE, see the discussion for a LATTICE’s Axis Statements.
The following example shows COLUMNAXIS statements for a lattice with two columns:
layout lattice / columns=2 columndatarange=union;
  columnaxes;
    columnaxis / griddisplay=on displaysecondary=(ticks tickvalues);
    columnaxis / griddisplay=on displaysecondary=(ticks tickvalues); 
  endcolumnaxes;

/* rest of lattice definition */

endlayout;
COLUMNAXIS and ROWAXIS statements are similar to the XAXISOPTS= and YAXISOPTS= options for LAYOUT OVERLAY, with the following differences:
  • When COLUMNAXIS and ROWAXIS are used, any axis options specified on plots within the affected columns or rows are ignored. All axis features for the external axes must be specified on the COLUMNAXIS or ROWAXIS statement.
  • When COLUMNAXIS and ROWAXIS are used, any LAYOUT OVERLAYEQUATED layouts specified for cells in the affected columns or rows are implemented as LAYOUT OVERLAY layouts. Equated axes are not supported on external axes.
In the default cases for each plot in the layout, the axis type is always DISCRETE, LINEAR, or TIME. The TYPE= option enables you to specify an axis type that overrides the default. For example, when appropriate for the data, you can request a LOG axis. When you override the default axis type, you must be sure to specify the correct axis type for the plot(s) that you are defining.
Each axis type has features specific to that type, and the following axis options enable you to specify features for the different types: DISCRETEOPTS= , LINEAROPTS= , LOGOPTS= , and TIMEOPTS= . One or more of these options can be specified for an axis, but the specified settings are applied only to the axis type that supports them.

General Options for All Axes in a Lattice

The options that are documented in this section can be used with any of the axis types that are supported within a LATTICE layout. Subsequent sections in the chapter document the axis options that are available only for specific axis types: discrete, linear, log, or time axes.
Statement Option
Description
Specifies features for a discrete axis.
Controls which axis features are displayed on the primary axis.
Controls which axis features are displayed on the secondary axis.
Specifies the attributes of the grid lines.
Specifies whether axis grid lines are displayed.
Specifies the axis label.
Specifies the color and font attributes of the axis label.
Specifies features for a standard numeric interval axis.
Specifies features for a log axis.
Assigns a name to an axis for reference in other statements.
Reserves an area at the maximum end of the axis. No tick marks are displayed in the reserved area.
Reserves an area at the minimum end of the axis. No tick marks are displayed in the reserved area.
Specifies whether the axis origin should be reversed.
Specifies an alternate axis label to use if the default or specified axis label is too long for the axis length.
Specifies the color and font attributes of the axis tick values.
Specifies features for a TIME axis.
Specifies the type of axis to use.
DISCRETEOPTS=(discrete-axis-options)
specifies one or more options for a discrete axis. See Options for Discrete Axes Only.
DISPLAY=STANDARD | ALL | NONE | (display-options)
controls which axis features are displayed on the primary axis. For more information about the primary and secondary axes, see the Statement Summary.
Default: STANDARD
STANDARD
specifies that the LABEL, LINE, TICKS, and TICKVALUES are displayed
ALL
specifies that the LABEL, LINE, TICKS, and TICKVALUES are displayed
NONE
specifies that no axis features are displayed
(display-options)
a list of space-delimited options, enclosed in parentheses. The list must include one or more of the following:
LABEL displays the axis label
LINE displays the axis line
TICKS displays the tick marks
TICKVALUES displays the values that are represented by the major tick marks
The default line attributes for the axis line and axis tick marks are defined in the GraphAxisLine style element.
See GRIDDISPLAY= and GRIDATTRS= for setting axis grid lines.
DISPLAYSECONDARY=NONE | ALL | STANDARD | (display-options)
controls which axis features are displayed on the secondary axis. For more information about the primary and secondary axes, see the Statement Summary.
Default: NONE
NONE
specifies that no secondary axis features are displayed
STANDARD
specifies that the LABEL, LINE, TICKS, and TICKVALUES are displayed on the secondary axis
ALL
specifies that the LABEL, LINE, TICKS, and TICKVALUES are displayed on the secondary axis
(display-options)
a list of space-delimited options, enclosed in parentheses. The list must include one or more of the following:
LABEL displays the axis label
LINE displays the axis line
TICKS displays the tick marks
TICKVALUES displays the values that are represented by the major tick marks
Restriction: A secondary axis is not an independent axis. Rather, it mirrors the primary axis (though it can use different display features). Thus, for this option to take effect, all plot statements in the layout must map data to the same primary axis. For example, a secondary X2 axis can be displayed on top in the layout, provided all plot statements set XAXIS=X to map data to the primary X axis (bottom). Similarly, a secondary Y2 axis can be displayed to the right in the layout, provided all plot statements set YAXIS=Y to map data to the primary Y axis (left). If some plot statements set XAXIS=X and others set XAXIS=X2, both the X and X2 axis are primary and a secondary X axis cannot be displayed. In that case, this option is ignored. The same applies for the Y axes.
GRIDATTRS=style-element | style-element (line-options) | (line-options)
specifies the attributes of the grid lines. See General Syntax for Attribute Options for the syntax on using a style-element and Line Options for available line-options.
Default: The GraphGridLines style element.
Interaction: This option is ignored if the GRIDDISPLAY= option does not display the grid lines.
GRIDDISPLAY=AUTO_OFF | AUTO_ON | ON | OFF
specifies whether axis grid lines are displayed.
Default: AUTO_OFF
AUTO_OFF
specifies that grid lines are not displayed unless the GraphGridLines element in the current style contains DisplayOpts="ON".
AUTO_ON
specifies that grid lines are displayed unless the GraphGridLines element in the current style contains DisplayOpts="OFF".
ON
specifies that grid lines are always displayed. The current style has no override.
OFF
specifies that grid lines are never displayed. The current style has no override.
This option enables the template to absolutely control the display of grid lines or to allow interaction with the current style to decide whether grid lines are displayed. When displayed, the grids appear in all cells.
Supplied styles use DisplayOpts="AUTO," which means that the style has no "preference" about grid lines and the graphics template setting for grid lines is always used.
Discussion: The following table shows the end results for various combinations of the GRIDDISPLAY= option and the DisplayOpts= attribute of the GraphGridLines style element. Most supplied templates use the default setting AUTO_OFF to indicate a preference for not displaying grid lines, but allowing the style to override.
GRIDDISPLAY= option
DisplayOpts= style attribute
Grid Lines Shown?
AUTO_OFF
AUTO
no
AUTO_OFF
ON
yes
AUTO_OFF
OFF
no
AUTO_ON
AUTO
yes
AUTO_ON
ON
yes
AUTO_ON
OFF
no
ON
any value
yes
OFF
any value
no
LABEL="string" | ("string" …"string")
specifies the axis label. The string can be either a string literal or a dynamic. The list form implies that all included string literals or dynamics will be concatenated
Default: The default label is derived from the primary plot in the layout. For more information, see When Plots Share Data and a Common Axis.
Interaction: If the axis label is too long to fit along the axis, it is truncated by default. Use the SHORTLABEL= option to specify an alternate axis label to be used whenever truncation would normally occur.
Interaction: This option is ignored if the DISPLAY= or DISPLAYSECONDARY= option does not display the axis label.
LABELATTRS=style-element | style-element (text-options) | (text-options)
specifies the color and font attributes of the axis label. See General Syntax for Attribute Options for the syntax on using a style-element and Text Options for available text-options.
Default: The GraphLabelText style element.
Interaction: This option is ignored if the DISPLAY= or DISPLAYSECONDARY= option does not display the axis label.
LINEAROPTS=(linear-axis-options)
specifies one or more linear axis options for a numeric interval axis. See Options for Linear Axes Only.
LOGOPTS=(log-axis-options)
specifies one or more options for a log axis. See Options for Log Axes Only.
NAME="string"
assigns a name to an axis for reference in other statements. Currently, it is used only in an AXISLEGEND statement.
Default: no default
Interaction: This option is ignored unless the axis is discrete. The axis can be discrete by default, or explicitly set to discrete with a TYPE=DISCRETE setting.
Interaction: For this option to take effect, an axis legend must be enabled. To enable an axis legend, the DISCRETEOPTS= option must set the TICKVALUEFITPOLICY to either EXTRACT or EXTRACTALWAYS. In addition, an AXISLEGEND statement must be specified to generate the axis legend.
OFFSETMAX=AUTO | AUTOCOMPRESS | number
Reserves an area at the maximum end of the axis. No tick marks are displayed in the reserved area. For more information, see Adjusting Axis Offsets.
Default: AUTO
Range: 0 - 1. The sum of OFFSETMAX= and OFFSETMIN= should not be more than 1.
AUTO
Reserves just enough area to fully display markers and other graphical features near the maximum end of an axis.
AUTOCOMPRESS
Automatic offset applied that prevents axis labels and tick values from extending beyond the axis length.
number
The offset is expressed as a decimal proportion of the full axis length.
OFFSETMIN=AUTO | AUTOCOMPRESS | number
Reserves an area at the minimum end of the axis. No tick marks are displayed in the reserved area. For more information, see Adjusting Axis Offsets.
Default: AUTO
Range: 0 - 1. The sum of OFFSETMAX= and OFFSETMIN= should not be more than 1.
AUTO
Reserves just enough area to fully display markers and other graphical features near the maximum end of an axis.
AUTOCOMPRESS
Automatic offset applied that prevents axis labels and tick values from extending beyond the axis length.
number
The offset is expressed as a decimal proportion of the full axis length.
REVERSE=boolean
specifies whether the axis origin should be reversed.
Default: FALSE
SHORTLABEL="string"
specifies an alternate axis label. This label is used when the default axis label or label specified by the LABEL= option is too long for the axis length.
Default: no default
Interaction: This option is ignored if the DISPLAY= or DISPLAYSECONDARY= option does not display the axis label.
If the specified label is itself too long for the axis, it is truncated in the display.
TICKVALUEATTRS=style-element | style-element (text-options) | (text-options)
specifies the color and font attributes of the axis tick values. See General Syntax for Attribute Options for the syntax on using a style-element and Text Options for available text-options.
Default: The GraphValueText style element.
Interaction: This option is ignored if the DISPLAY= or DISPLAYSECONDARY= option does not display the axis label.
TIMEOPTS=(time-axis-options)
specifies one or more options for a time axis. See Options for Time Axes Only.
TYPE=AUTO | DISCRETE | LINEAR | TIME | LOG
specifies the type of axis to use.
Default: AUTO
AUTO
Requests that the axis type be automatically determined, based on the overlay contents. For more information, see When Plots Share Data and a Common Axis.
DISCRETE
Use a DISCRETE axis if possible. The data for discrete axes can be character or numeric. You can add a DISCRETEOPTS= ( ) option list to customize this axis type.
LINEAR
Use a LINEAR axis if possible. You can add a LINEAROPTS= ( ) option list to customize this axis type.
TIME
Use a TIME axis if possible. Data for this axis must be SAS time, SAS date, or SAS datetime values. You can add a TIMEOPTS= ( ) option list to customize this axis type.
LOG
Use a LOG axis if possible. You can add a LOGOPTS= ( ) option list to customize this axis type.

Options for Discrete Axes Only

DISCRETEOPTS=(discrete-axis-options)
specifies one or more options for a discrete. Options must be enclosed in parentheses. Each option is specified as a name = value pair and each pair is space separated.
Interaction: This option is ignored if the axis type is not DISCRETE.
TICKTYPE= MIDPOINT | INBETWEEN
[discrete axis]
specifies the position of the axis tick mark.
Default: MIDPOINT
MIDPOINT The tick mark is placed at the midpoint value location.
INBETWEEN The tick mark is placed half way between adjacent midpoint locations.
TICKVALUEFITPOLICY=ROTATE | policy
[discrete axis]
specifies a policy for avoiding tick value collision on an axis.
Note: A Y or Y2 axis supports only the values NONE, THIN, EXTRACT, and EXTRACTALWAYS
Default:
  • ROTATE for an X or X2 axis.
  • NONE for a Y or Y2 axis.
The following fit policies are available:
ROTATE Tick values are rotated 45 degrees. This value is not available for a Y or Y2 axis.
ROTATETHIN Attempt ROTATE policy and then THIN policy. This value is not available for a Y or Y2 axis.
STAGGER Tick values alternate between two rows. This value is not available for a Y or Y2 axis.
STAGGERROTATE Attempt STAGGER policy and then ROTATE policy. This value is not available for a Y or Y2 axis.
STAGGERTHIN Attempt STAGGER policy and then THIN policy. This value is not available for a Y or Y2 axis.
STAGGERTRUNCATE Attempt STAGGER policy and then TRUNCATE policy. This value is not available for a Y or Y2 axis.
TRUNCATE Tick values are shortened when they exceed a certain number of characters. This value is not available for a Y or Y2 axis.
TRUNCATEROTATE Attempt TRUNCATE policy and then ROTATE policy. This value is not available for a Y or Y2 axis.
TRUNCATESTAGGER Attempt TRUNCATE policy and then STAGGER policy. This value is not available for a Y or Y2 axis.
TRUNCATETHIN Attempt TRUNCATE policy and then THIN policy. This value is not available for a Y or Y2 axis.
THIN Some tick values are removed.
EXTRACT Instead of actual tick values, display consecutive integers along the axis to represent those tick values. (See the Requirement for additional information.) In most cases, this policy is implemented if the system estimates that a collision might occur. If no collision occurs, the actual tick values are displayed on the axis in the normal manner.
EXTRACTALWAYS Same as EXTRACT, except that the extraction is implemented regardless of whether collision occurs.
Requirement: The EXTRACT and EXTRACTALWAYS policies must be used in conjunction with an AXISLEGEND statement. The AXISLEGEND statement creates a legend that correlates the actual tick values with the consecutive integers that are displayed as axis-tick values in the graph. The AXISLEGEND statement must reference this axis, using the name that is assigned to the axis in its NAME= axis option.

Options for Linear Axes Only

LINEAROPTS=(linear-axis-options)
specifies one or more linear axis options for a numeric interval axis. Options must be enclosed in parentheses. Each option is specified as a name = value pair and each pair is space separated.
Interaction: This option is ignored if the axis type is not LINEAR.
Linear Axis Option
Description
Specifies that evenly spaced integer values are used for tick marks.
Specifies a bias for including one more tick mark at the maximum end of the axis.
Specifies a bias for including one more tick mark at the minimum end of the axis.
Specifies a policy for avoiding tick value collision on an X or X2 axis. This option is not available in the ROWAXIS statement.
Specifies how to format the values for major tick marks.
Specifies the order of the tick values for a linear axis as list.
Specifies whether an axis tick specification can extend the axis data range.
Specifies the tick values for a linear axis by start, end, and increment.
Specifies the maximum data value to include in the display.
Specifies the minimum data value to include in the display.
INTEGER=boolean
[linear axis]
specifies that evenly spaced integer values are used for tick marks.
Default: FALSE
Interaction: This option is overridden by the TICKVALUELIST= or TICKVALUESEQUENCE= option.
Interaction: This option overrides the MAXDECIMALS= and PREFERREDDECIMALS= suboptions of the TICKVALUEFORMAT= option
THRESHOLDMAX= number
[linear axis]
specifies a bias for including one more tick mark at the maximum end of the axis. For more information, see Adjusting Axis Thresholds.
Default: .30
Range: 0 - 1
Interaction: This option is ignored if the TICKVALUELIST= or TICKVALUESEQUENCE= option is used.
THRESHOLDMIN= number
[linear axis]
specifies a bias for including one more tick mark at the minimum end of the axis. For more information, see Adjusting Axis Thresholds.
Default: .30
Range: 0 - 1
Interaction: This option is ignored if the TICKVALUELIST= or TICKVALUESEQUENCE= option is used.
TICKVALUEFITPOLICY=THIN | policy
[linear axis]
specifies an ordered list of strategies to avoid tick value collision on an X or X2 axis. This option is not available in the ROWAXIS statement.
Default: THIN
The fit policy can be any one of the following:
THIN Eliminate alternate tick values. Available for the COLUMNAXIS but not for the ROWAXIS.
ROTATE Tick values are rotated 45 degrees.
ROTATETHIN Attempt ROTATE policy and then THIN policy.
STAGGER Tick values alternate between two columns.
STAGGERROTATE Attempt STAGGER policy and then ROTATE policy.
STAGGERTHIN Attempt STAGGER policy and then THIN policy.
If more than one strategy is used, the values in the list are formatted according to the TICKVALUEFORMAT= option.
TICKVALUEFORMAT=(format-options) | DATA | format
[linear axis]
specifies how to format the values for major tick marks.
Default: (MAXWIDTH=8, MAXDECIMALS=6, PREFERREDDECIMALS=2, EXTRACTSCALE=FALSE)
(format-options)
specifies one or more major tick value formatting options. Together, these options provide parameters for determining an optimal format (w.d, Ew., BESTw.) for displaying major tick values.
MAXWIDTH = integer Specifies the maximum width for displayed tick values. Values might be rounded or converted to E notation to fit into this width.
MAXDECIMALS = integer Specifies the maximum number of decimals for displayed tick values. Values might be rounded or converted to E notation to fit into this width. MAXWIDTH > MAXDECIMALS
PREFERREDDECIMALS = integer Specifies the number of decimal places desired for most values. The actual number might vary based on other constraints.
EXTRACTSCALE = boolean Specifies whether to extract a scale factor from the tick values and use it to reduce the tick value width. For large tick values, the scale factor is set to ensure that the absolute value of the largest value is greater than 1. The scale can be millions, billions, or trillions for values of 999 trillion or less, or a multiple of 10 (denoted as 10^n) for values over 999 trillion. For small fractional tick values, the scale factor is set to ensure that the absolute value of the smallest value is greater than 1. The scale can be millionth, billionth, or trillionth for values of 1 trillionth or more, or a multiple of 1/10 (10^–n) for values less than 1 trillionth. The scale used is appended to the axis label. For example: Total Sales (millions).
Restriction: The scale that is extracted by the EXTRACTSCALE= option is derived from the English locale.
Note: When EXTRACTSCALE=TRUE and a scale is extracted, the tick values are formatted to provide the best fit on the axis. In that case, the tick value format might differ from the data format even when a named format is applied to the data values.
DATA
use the format that has been assigned to the variable(s) contributing to the axis (or BEST6. if no format is assigned) to control the formatting of the major tick values.
format
use this format to control how the major tick values are formatted.
Restriction: GTL currently honors most but not every SAS format. For details, see SAS Formats Not Supported.
Interaction: If the axis label is not displayed, the EXTRACTSCALE=TRUE option is ignored.
TICKVALUELIST=(numeric-list)
[linear axis]
specifies the tick values for a linear axis as list.
Default: An internal algorithm determines the tick marks based on the actual axis data range or the data range established by the VIEWMIN= and VIEWMAX= options. By default when this option is used, the only tick values that appear are those in numeric-list that fall within the explicit data range (set by VIEWMIN= and VIEWMAX=) or implicit data range (set by the actual data minimum and data maximum).
Requirement: The numeric-list must be enclosed in parentheses and each item separated by a blank.
Interaction: This option overrides the INTEGER= option.
Interaction: This option is ignored if the TICKVALUESEQUENCE= option is specified, or if the DISPLAY= or DISPLAYSECONDARY= option does not display the tick values.
Interaction: The VIEWMIN= and VIEWMAX= options alter the axis data range. If the VIEWMIN= option is set to the minimum tick list value and the VIEWMAX= option is set to the maximum tick list value, all ticks in the tick list are displayed.
Interaction: If the TICKVALUEPRIORITY= is set to TRUE, 1) the VIEWMIN= and VIEWMAX= options are ignored if they are fully enclosed by the numeric-list, and 2) the tick numeric-list can extend the implicit data range of the axis, but never reduce it.
The values in the list are formatted according to the setting for the TICKVALUEFORMAT= option.
TICKVALUEPRIORITY=boolean
[linear axis]
specifies whether an axis tick specification (TICKVALUELIST= or TICKVALUESEQUENCE= ) can extend the axis data range.
Default: FALSE.
FALSE
the only tick values that appear are the user-specified tick values that fall within the explicit data range (set by VIEWMIN= and VIEWMAX= ) or implicit data range (set by the actual data minimum and data maximum).
TRUE
the axis data range might be extended (but not reduced) to include the minimum and maximum specified by either the TICKVALUELIST= or TICKVALUESEQUENCE= option. If minimum and maximum of the user-specified values are within the data range, this option has no effect.
Interaction: When this option is set to TRUE, the VIEWMIN= and VIEWMAX= options are ignored.
Interaction: This option is ignored if the DISPLAY= or DISPLAYSECONDARY= option does not display the tick values.
TICKVALUESEQUENCE=(sequence-options)
[linear axis]
specifies the tick values for a linear axis by start, end, and increment.
Default: An internal algorithm determines the tick marks based on the actual axis data range or the data range established by the VIEWMIN= and VIEWMAX= options. By default when this option is used, the only tick values that appear are those that fall within the explicit data range (set by VIEWMIN= and VIEWMAX=) or implicit data range (set by the actual data minimum and data maximum).
(sequence-options)
Three settings that control major tick values. All three must be provided.
START = number Specifies the value for the first tick mark.
END = number Specifies the value for the last tick mark.
INCREMENT = number Specifies the increment for intermediate tick marks between the first and last tick marks. The END value always controls the last tick mark. The interval between the last tick mark and the previous tick mark might not necessarily be the INCREMENT value.
Interaction: This option overrides the INTEGER= option.
Interaction: The VIEWMIN= and VIEWMAX= options alter the axis data range. If the VIEWMIN= option is set to the START= option value and the VIEWMAX= option is set to the END= option value, all ticks in the tick sequence are displayed.
Interaction: If the TICKVALUEPRIORITY= option is set to TRUE, the tick sequence might extend the explicit data range of the axis, but never reduce it.
Interaction: This option is ignored if the DISPLAY= or DISPLAYSECONDARY= option does not display tick marks.
The values in the sequence are formatted according to the setting for the TICKVALUEFORMAT= option.
See also: TICKVALUELIST= option as an alternative for customizing tick marks.
VIEWMAX= number
[linear axis]
specifies the maximum data value to include in the display (the value might be adjusted by the threshold calculation). For more information, see Adjusting the Axis View.
Default: The maximum value in the data for the specified axis.
Interaction: This option does not determine the maximum axis tick value displayed. The THRESHOLDMAX= value is used to determine the maximum tick value.
Interaction: This option has no effect if the TICKVALUEPRIORITY= is set to TRUE.
Setting a VIEWMAX= or VIEWMIN= value does not alter the original data or any calculations on it.
VIEWMIN= number
[linear axis]
specifies the minimum data value to include in the display (the value might be adjusted by the threshold calculation). For more information, see Adjusting the Axis View.
Default: The minimum value in the data for the specified axis.
Interaction: This option does not determine the minimum axis tick value displayed. The THRESHOLDMIN= value is used to determine the minimum tick value.
Interaction: This option has no effect if the TICKVALUEPRIORITY= is set to TRUE.
Setting a VIEWMAX= or VIEWMIN= value does not alter the original data or any calculations on it.

Options for Log Axes Only

LOGOPTS=(log-axis-options)
specifies one or more options for a log axis. Options must be enclosed in parentheses. Each option is specified as a name = value pair and each pair is space separated.
Interaction: This option is ignored if the axis type is not LOG.
Log Axis Option
Description
Specifies the base of the logarithmic scale for the axis values.
Specifies whether minor ticks are displayed.
Specifies how to scale and format the values for major tick marks.
Specifies the maximum data value to include in the display.
Specifies the minimum data value to include in the display.
BASE=10 | 2 | E
[log axis]
specifies the base of the logarithmic scale for the axis values.
Default: 10
MINORTICKS=boolean
[log axis]
specifies whether minor ticks are displayed:
illustration of minor ticks
Default: FALSE
Restriction: Minor ticks can be displayed only when BASE=10 and TICKINTERVALSTYLE= is LOGEXPAND or LOGEXPONENT.
If this option is set to TRUE, the number of minor ticks is automatically determined.
TICKINTERVALSTYLE=AUTO | LOGEXPAND | LOGEXPONENT | LINEAR
[log axis]
specifies how to scale and format the values for major tick marks.
Default: AUTO
AUTO
A LOGEXPAND, LOGEXPONENT, or LINEAR representation is chosen automatically based on the range of the data. When the data range is small (within an order of magnitude), a LINEAR representation is typically used. Data ranges that encompass several orders of magnitude typically use the LOGEXPAND or LOGEXPONENT representation.
LOGEXPAND
Major ticks are placed at uniform intervals at integer powers of the base. The tick values are expanded as follows:
major ticks in base 10 Base=10
major ticks in base 2 Base=2
major ticks in base e Base=E
LOGEXPONENT
Major ticks are placed at uniform intervals at integer powers of the base. The tick values are only the integer exponents for all bases.
major ticks are integer exponents for the base
LINEAR
Major tick marks are placed at non-uniform intervals that cover the range of the data.
major ticks in linear format
Restriction: For LOGEXPAND and LOGEXPONENT, formats on data columns contributing to the axis are ignored. For LINEAR, ticks values are automatically formatted when the column format is not assigned or one of w.d, Ew. or BESTw. Other formats (SAS defined or user-defined) are used if specified.
Restriction: GTL currently honors most but not every SAS format. For details, see SAS Formats Not Supported.
Interaction: When BASE=10 and LOGEXPAND or LOGEXPONENT is used, an intermediate tick is added whenever the axis data range is less than or equal to 1.5 powers of 10.
If you use TICKINTERVALSTYLE=LOGEXPONENT, you might want to include information in the axis label about which base is used.
VIEWMAX= number
[log axis]
specifies the maximum data value to include in the display. For more information, see Adjusting the Axis View.
Default: The maximum value in the data for the specified axis.
Setting a VIEWMAX= or VIEWMIN= value does not alter the original data or any calculations on it.
VIEWMIN= number
[log axis]
specifies the minimum data value to include in the display. For more information, see Adjusting the Axis View.
Default: The minimum value in the data for the specified axis.
Setting a VIEWMAX= or VIEWMIN= value does not alter the original data or any calculations on it.

Options for Time Axes Only

TIMEOPTS=(time-axis-options)
specifies one or more options for a time axis.
Variables associated with a time axis must be in SAS time, SAS date, or SAS datetime units and have an associated SAS time, date, or datetime format.
Options must be enclosed in parentheses. Each option is specified as a name = value pair and each pair is space separated.
Interaction: This option is ignored if the axis type is not TIME.
Time Axis Option
Description
Specifies the time interval between major tick marks.
Specifies whether minor tick marks are displayed.
Specifies whether to split the tick values on column axes, if possible. This option is not available in the ROWAXIS statement.
Specifies a policy for avoiding tick value collision on column axes. This option is not available in the ROWAXIS statement.
Specifies how to format the values for major tick marks.
Specifies the order of the tick values for a time axis as list.
Specifies whether an axis tick specification can extend the axis data range.
Specifies the maximum data value to include in the display.
Specifies the minimum data value to include in the display.
INTERVAL=interval
[time axis]
specifies the time interval between major ticks. Valid interval keywords are AUTO, SECOND, MINUTE, HOUR, DAY, TENDAY, WEEK, SEMIMONTH, MONTH, QUARTER, SEMIYEAR, YEAR.
The data column(s) mapped to a time axis must be in the same duration units: TIME, DATE, or DATETIME. The selection of an interval must be consistent with the duration unit. For example, if the data are in time units, you can select only AUTO, SECOND, MINUTE, HOUR.
Default: AUTO. An appropriate interval is chosen based on the data.
Interaction: This option is ignored if the TICKVALUELIST= option is used.
INTERVAL
Unit
Tick interval
Default tick value format
AUTO
DATE, TIME, or DATETIME
automatically chosen
automatically chosen
SECOND
TIME or DATETIME
second
TIME8.
MINUTE
TIME or DATETIME
minute
TIME8.
HOUR
TIME or DATETIME
hour
TIME8.
DAY
DATE or DATETIME
day
DATE9.
TENDAY
DATE or DATETIME
10 days
DATE9.
WEEK
DATE or DATETIME
7 days
DATE9.
SEMIMONTH
DATE or DATETIME
1st and 16th of each month
DATE9.
MONTH
DATE or DATETIME
month
MONYY7.
QUARTER
DATE or DATETIME
3 months
YYQC6.
SEMIYEAR
DATE or DATETIME
6 months
MONYY7.
YEAR
DATE or DATETIME
year
YEAR4.
MINORTICKS=boolean
[time axis]
specifies whether minor tick marks are displayed.
Default: FALSE
Interaction: The number of minor ticks is dependent on the value of the INTERVAL= option. For example, on a row axis, if INTERVAL=YEAR, there would be four minor ticks (one per quarter).
Interaction: This option is ignored if the TICKVALUELIST= option is used, or if the DISPLAY= or DISPLAYSECONDARY= option does not display the tick marks.
SPLITTICKVALUE=boolean
[time axis]
specifies whether to split the tick values on column axes, if possible (this option is not available in the ROWAXIS statement). For example, with INTERVAL=MONTH, this is how tick values are split:
axis with split tick values
Default: TRUE
TRUE
axis tick values are split into two lines allowing more tick values to appear
FALSE
typically, fewer tick values fit, causing thinning, rotation, or staggering of the values. See the TICKVALUEFITPOLICY= option.
Interaction: This option is ignored if the TICKVALUELIST= or TICKVALUEFORMAT= option is specified.
TICKVALUEFITPOLICY=THIN | policy
[time axis]
specifies a policy for avoiding tick value collision on column axes. This option is not available in the ROWAXIS statement.
Default: THIN
The fit policy can be any one of the following policies:
THIN Some tick values are removed.
ROTATE Tick values are rotated 45 degrees.
ROTATETHIN Attempt ROTATE policy and then THIN policy.
STAGGER Tick values alternate between two columns.
STAGGERROTATE Attempt STAGGER policy and then ROTATE policy.
STAGGERTHIN Attempt STAGGER policy and then THIN policy.
Interaction: When SPLITTICKVALUE= TRUE, this option is ignored and only the THIN policy is used.
TICKVALUEFORMAT=format | DATA
[time axis]
specifies how to format the values for major tick marks.
Default: The default format used by the INTERVAL= option. The default does not apply if TICKVALUELIST= is specified.
format
A SAS date, time, or datetime format to control how the major tick values are displayed. This format should be in the same duration units as the data column(s) mapped to a time axis: TIME, DATE, or DATETIME, and should be appropriate for the value of the INTERVAL= option. For example, if INTERVAL=MONTH and there are two years of data displayed on the axis, choosing TICKVALUEFORMAT=YEAR. would result in several ticks having the same year value.
DATA
Use the SAS date, time, or datetime format associated with the data column assigned to the axis to control how the major tick values are displayed.
Restriction: GTL currently honors most but not every SAS format. For details, see SAS Formats Not Supported.
Interaction: If this option is specified, the SPLITTICKVALUE= option is ignored.
TICKVALUELIST=(time-constant-list | date-constant-list | datetime-constant-list | numeric-list)
[time axis]
specifies the tick values for a time axis as list.
Default: An internal algorithm determines the tick values.
Requirement: The list must be enclosed in parentheses and each item separated by a blank. The items in the list must be in the same duration units as the data mapped to the axis: TIME, DATE, or DATETIME. The values can be expressed as SAS TIME, DATE, or DATETIME constants (for example, "13:23"T, "11MAY06"D, or "11MAY06:13:23"DT) or their numeric equivalents.
Restriction: If TICKVALUEPRIORITY= is set to FALSE, this option does not extend the data range of the axis. If the values fall within the default data range or that specified by the VIEWMIN= or VIEWMAX= options, they are used.
The values in the list are formatted according to the setting for the TICKVALUEFORMAT= option. If TICKVALUEFORMAT= is not used, the values are formatted according to the column format (the default TICKVALUEFORMAT value is not applied to these values).
Interaction: If this option is specified, the SPLITTICKVALUE= and INTERVAL= options are ignored.
TICKVALUEPRIORITY=boolean
[time axis]
specifies whether an axis tick specification (TICKVALUELIST= ) can extend the axis data range.
Default: FALSE
FALSE
the only tick values that appear are the user-specified tick values that fall within the explicit data range (set by VIEWMIN= and VIEWMAX= ) or implicit data range (set by the actual data minimum and data maximum).
TRUE
the axis data range might be extended (but not reduced) to include the minimum and maximum specified by the TICKVALUELIST= option. If minimum and maximum of the user-specified values are within the data range, this option has no effect.
Interaction: When this option is set to TRUE, the VIEWMIN= and VIEWMAX= options are ignored.
Interaction: This option is ignored if the DISPLAY= or DISPLAYSECONDARY= option does not display tick marks.
VIEWMAX= number
[time axis]
specifies the maximum data value to include in the display. For more information, see Adjusting the Axis View.
Default: The maximum value in the data for the specified axis.
Setting a VIEWMAX= or VIEWMIN= value does not alter the original data or any calculations on it.
VIEWMIN= number
[time axis]
specifies the minimum data value to include in the display. For more information, see Adjusting the Axis View.
Default: The minimum value in the data for the specified axis.
Setting a VIEWMAX= or VIEWMIN= value does not alter the original data or any calculations on it.