Primary and Secondary Axes. The LAYOUT OVERLAY container
supports two horizontal (X and X2) and two vertical (Y and Y2) axes.
The bottom axis (X) and the left axis (Y) are the default axes, referred
to as the primary axes. The top axis (X2) and the right axis (Y2)
are referred to as the secondary axes and are displayed only if they
are requested. For example, consider this simple layout block:
layout overlay;
scatterplot x=city y=fahrenheit;
endlayout;
Explicitly, the layout block means
the following:
layout overlay;
scatterplot x=city y=fahrenheit / xaxis=x yaxis=y ;
endlayout;
The defaults
result in an XY plot having only two axes, X and Y. However, you can
request that either the X or Y columns be mapped to the X2 or Y2 axis.
The XAXIS= option can be set to X or X2. Similarly, the YAXIS= option
can be set to Y or Y2:
layout overlay;
scatterplot x=city y=fahrenheit / xaxis=x2 yaxis=y2 ;
endlayout;
A single
plot statement can activate one horizontal and/or one vertical axis.
It cannot activate both horizontal or both vertical axes. Thus, to
see both a Y and Y2 axis based on the same Y column, you could specify
an additional plot statement:
layout overlay;
scatterplot x=city y=fahrenheit / xaxis=x yaxis=y ;
scatterplot x=city y=fahrenheit / xaxis=x yaxis=y2 ;
endlayout;
This layout
could be more compactly written as follows:
layout overlay;
scatterplot x=city y=fahrenheit;
scatterplot x=city y=fahrenheit / yaxis=y2 ;
endlayout;
Note that
this coding produces two overlaid scatter plots, each with five markers.
Because the five (X,Y) value pairs and the five (X,Y2) value pairs
are identical, the Y and Y2 axes are identical and the markers are
exactly superimposed. However, it is not necessary to create a second
plot when you want the secondary axis to be a duplicate of the primary
axis. A more direct way to accomplish this is
shown in Specifying Axis Options.
The next
two examples show the independent nature of primary and secondary
axes. In each case, a different data column is mapped to the Y and
Y2 axes.
layout overlay;
seriesplot x=date y=price;
needleplot x=date y=volume / yaxis=y2;
endlayout;
As the
following figure shows, the primary and secondary Y axes are independently
scaled and there is not a necessary connection between the units or
data ranges of either axis.
In the
next example, even though the Y and Y2 variables are different, the
primary and secondary Y axes represent the same data range in different
units. In such cases, the positioning of the tick values on each axis
should be coordinated so that the grid lines represent the same temperature
on each axis.
Apply Axis Thresholds provides example code that shows
how to coordinate the tick value positions.
layout overlay;
scatterplot x=city y=fahrenheit;
scatterplot x=city y=celsius / yaxis=y2 ;
endlayout;