| SAS/GRAPH Software: Reference |
The PATTERN statement defines the characteristics of
patterns
used in graphs.
-
Used by:
-
GCHART, GCONTOUR, GMAP, and GPLOT procedures;
SYMBOL statement; Annotate facility
Global
Assigned by default
PATTERN statements create PATTERN definitions that define the
color and type of area fill for patterns used in graphs. These are the procedures
and the graphics areas that they create that use PATTERN definitions:
In addition, the SYMBOL statement and certain Annotate
facility functions and macros can use pattern specifications. For details
see SYMBOL Statement
and The Annotate Data Set.
You can use the PATTERN statement to control the fill
and color of a pattern, and whether the pattern is repeated. There are three
types of patterns:
Pattern fills can be solid or empty, or composed of
parallel or crosshatched lines. In addition, you can specify device-dependent
hardware patterns for rectangle, polygon, and pie fills on devices that support
hardware patterns.
If you do not create PATTERN definitions, SAS/GRAPH software
generates them as needed and assigns them to your graphs by default. Generally,
the default behavior is to rotate a solid pattern through the current colors
list. For details, see About Default Patterns.
PATTERN<1...99>
<COLOR=pattern-color>
<REPEAT=number-of-times>
<VALUE=bar/block-pattern
| map/plot-pattern
| pie/star-pattern
|
hardware-pattern>;
|
-
COLOR=pattern-color
C=pattern-color
-
specifies the color of the fill. Pattern-color is any SAS/GRAPH color
name. See SAS/GRAPH Colors
for more information on specifying colors.
Using COLOR= with a null value cancels the color specified
in a previous PATTERN statement of the same number without affecting the values
of other options.
COLOR= overrides the CPATTERN= graphics option.
The CFILL= option in the PIE and STAR statements overrides COLOR=.
For details, see Controlling Slice Patterns and Colors.
- CAUTION:
- Omitting COLOR= in a PATTERN statement may cause the PATTERN statement
to generate multiple PATTERN definitions.
![[cautend]](../common/images/cautend.gif)
If no color is specified
for a PATTERN statement, that is, if neither COLOR= nor CPATTERN= is used,
the PATTERN statement rotates the specified fill through each color in the
colors list before the next PATTERN statement is used. For details, see Understanding Pattern Sequences.
-
REPEAT=number-of-times
R=number-of-times
-
specifies the number of times that a PATTERN
definition is applied before the next PATTERN definition is used. By default,
REPEAT=1.
The behavior of
REPEAT= depends on the color specification:
Using REPEAT= with a null value
cancels the repetition specified in a previous PATTERN statement of the same
number without affecting the values of other options.
-
VALUE=bar/block-pattern
V=bar/block-pattern
-
specifies patterns for:
Values
for bar/block-pattern are
Bar and Block Patterns shows all of the patterns
available for bars and blocks.
Bar and Block Patterns
If no valid patterns
are available, default bar and block fill patterns are selected in this order:
-
SOLID
-
X1--
X5
-
L1-- L5
-
R1-- R5
Each fill is used once with
every color in the colors
list unless a pattern color is specified. The entire sequence is repeated
as many times as required to provide the necessary number of patterns.
Note:
If the V6COMP graphics option is in effect, or if color
is limited to a single color with the CPATTERN= or COLORS= graphics options,
the order is X1-- X5, L1-- L5, R1-- R5, S, and E. ![[cautend]](../common/images/cautend.gif)
-
VALUE=map/plot-pattern
V=map/plot-pattern
-
specifies patterns for:
Values for map/plot-pattern are
Map and Plot Patterns shows some typical map
and plot patterns.
Map and Plot Patterns
If no valid patterns
are available, default map and plot fill patterns are selected in this order:
-
MSOLID
-
M2N0
-
M2N90
-
M2X45
-
M4N0
-
M4N90
-
M4X90
Each fill is used once with every color in the
colors
list unless a pattern color is specified. The entire sequence is repeated
as many times as required to provide the necessary number of patterns.
Note:
If the V6COMP graphics option is in effect, or if color
is limited to a single color with the CPATTERN= or COLORS= graphics options,
MSOLID is not used and the default fill list starts with M2N0. ![[cautend]](../common/images/cautend.gif)
-
VALUE=pie/star-pattern
V=pie/star-pattern
-
specifies patterns for pie and star
charts produced by the PIE and STAR statements in the GCHART procedure. Values
for pie/star-pattern are
The FILL= option in the PIE and STAR statements in the
GCHART procedure overrides VALUE=.
Pie and Star Patterns shows some typical
pie and star patterns.
Pie and Star Patterns
If no valid patterns
are available, default pie and star fill patterns are selected in this order:
-
PSOLID
-
P2N0
-
P2N90
-
P2X45
-
P4N0
-
P4N90
-
P4X90
Each fill is used once with every color in the colors
list unless a pattern color is specified. The entire sequence is repeated
as many times as required to provide the necessary number of patterns.
Note:
If the V6COMP graphics option is in effect, or if color
is limited to a single color with the CPATTERN= or COLORS= graphic options,
PSOLID is not used and the default fill list starts with P2N0. ![[cautend]](../common/images/cautend.gif)
Note:
If you use hatch patterns
and request a legend instead of slice labels, the patterns in the slices are
oriented to be visually equivalent to the legend. ![[cautend]](../common/images/cautend.gif)
-
VALUE=HWxxxnnn
-
specifies a hardware pattern where
If
you specify a hardware pattern for a device that
does not support hardware patterns, or if you specify an invalid pattern number,
a solid rectangle, polygon, or pie fill is substituted. A solid fill will
also be used in place of a hardware pattern in certain types of clipped polygons.
See the PCLIP and POLYGONCLIP options in Graphics Options and Device Parameters Dictionary for more information on using hardware
patterns with clipped polygons.
PATTERN statements can be located anywhere in your SAS program.
They are global and remain in effect until redefined, canceled, or until
the end of your SAS session.
You can define up to 99 different PATTERN
statements. A PATTERN
statement without a number is treated as a PATTERN1 statement.
PATTERN statements generate one or more PATTERN definitions,
depending on how the COLOR= and VALUE= options are used. For information on
PATTERN definitions, see Working with PATTERN Statements,
as well as the description of COLOR= and
VALUE=.
PATTERN definitions are generated in the order in which
the statements are numbered, regardless of gaps in the numbering or the statement's
position in the program. Although it is common practice, you do not have to
start with PATTERN1, and you do not have to use sequential statement numbers.
PATTERN definitions are applied automatically to all
areas of the graphics output that require patterns. When assigning PATTERN
definitions, SAS/GRAPH starts with
the lowest-numbered definition with an appropriate fill specification or with
no fill specification. It continues to use the specified patterns until all
valid PATTERN definitions have been used. Then, if more patterns are required, SAS/GRAPH returns
to the default pattern rotation, but continues to outline the areas in the
same color as the fill.
PATTERN statements are additive. If you define a PATTERN statement
and later submit another PATTERN statement with the same number, the new PATTERN
statement redefines or cancels only the options that are included in the new
statement. Options not included in the new statement are not changed and
remain in effect. For example, assume you define PATTERN4 as
pattern4 value=x3 color=red repeat=2;
This statement cancels only REPEAT= without affecting
the rest of the definition:
pattern4 repeat=;
Add or change options in the same way. This statement
changes the color of the pattern from red to blue:
pattern4 color=blue;
After all these modifications, PATTERN4 has these characteristics:
pattern4 value=x3 color=blue;
Cancel individual PATTERN statements by defining a PATTERN statement
of the same number without options (a null statement):
pattern4;
Canceling one PATTERN statement does not affect any
other PATTERN definitions. To cancel all current PATTERN statements, use
the RESET= option in a GOPTIONS statement:
goptions reset=pattern;
Specifying RESET=GLOBAL or RESET=ALL cancels all current
PATTERN definitions as well as other settings.
To display a list of current PATTERN definitions in
the LOG window, use the GOPTIONS procedure with the PATTERN option:
proc goptions pattern nolist;
run;
When a procedure produces a
graph that needs one or more patterns, SAS/GRAPH either
In order to understand how SAS/GRAPH
generates
and assigns patterns defined with PATTERN statements it is helpful to understand
how it generates and assigns default patterns. The following sections describe
the default pattern behavior for all procedures. See Working with PATTERN Statements for details about
defining patterns.
In general, SAS/GRAPH uses
default patterns when no PATTERN statements are defined. Typically, the default
pattern that SAS/GRAPH uses is a solid
fill that it rotates once through the colors list, skipping the foreground
color. By default, SAS/GRAPH also outlines
all areas in the foreground color. (Typically, the foreground color is the
first color in the device's colors list.)
Specifically, SAS/GRAPH uses
default patterns and outlines when you
If all of these conditions are true, then SAS/GRAPH
For example, the default colors list for the PSCOLOR
device contains BLACK, RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW, and GRAY.
Therefore, for this device, the first five default patterns are solid red,
solid green, solid blue, solid cyan, and solid magenta. These patterns are
all outlined in black, the first color in the colors list.
If a procedure needs additional patterns, SAS/GRAPH selects
the next default pattern fill appropriate to the graph and rotates it through
the colors list, skipping the foreground color as before. SAS/GRAPH continues
in this fashion until it has generated enough patterns for the chart.
Changing any of these conditions may change or override the
default behavior:
-
If you specify a colors
list with the COLORS= option in a GOPTIONS statement and the list contains
more than one color, SAS/GRAPH rotates
the default fills, beginning with SOLID, through that list. In this case,
it uses every color, even if the foreground color is black (or white). The
default outline color remains the foreground color.
-
If you specify either COLORS=(one-color) or the
CPATTERN= graphics option, the default fill changes from SOLID to the appropriate
list of hatch patterns. SAS/GRAPH uses
the specified color to generate one pattern definition for each hatch pattern
in the list. The default outline color remains the foreground color.
-
Whenever you specify PATTERN statements, whether
or not the procedure can use them, the default outline color for all patterns
changes from foreground to SAME. Therefore, when a procedure runs out of specified
patterns and returns to the default pattern rotation, the outline color is
SAME, not foreground.
For a description of these graphics options, see
Graphics Options and Device Parameters Dictionary.
With PATTERN
statements, you can specify
You can also use procedure options to specify the pattern
outline color and the CPATTERN= graphics option to specify a default color
for all patterns.
Whether you use PATTERN statement options alone or with
each other affects the number and kind of patterns your PATTERN statements
generate. Depending on the options you use, you can explicitly specify every
pattern used by your graphs or you can let the PATTERN statement generate
a series of pattern definitions using either the colors list or the list of
default fills.
To
explicitly specify all the patterns in your graph, you need
to do one of the following for every pattern your graph requires:
Including COLOR= in the PATTERN statement is the simplest
way to assure that you get exactly the patterns you want. When you use the
COLOR= option, the PATTERN statement generates exactly one PATTERN definition
for that statement. If you also use the REPEAT= option, the PATTERN definition
is repeated the specified number of times.
You can also use PATTERN
statements to generate multiple PATTERN definitions. To do this use the VALUE=
option to specify the type of fill you want but omit the COLOR= option --
for example
pattern1 value=r3;
In this case, the PATTERN statement rotates the R3 fill
through all the colors in the colors list. For more information on pattern
rotation, see Understanding Pattern Sequences.
The
type of fill you specify depends on the type of graph you
are producing:
Note:
If you specify a fill that is
inappropriate for the type of graph you are generating (for example, if you
specify VALUE=L1 in a PATTERN statement for a choropleth map), SAS/GRAPH ignores
the PATTERN statement and continues searching for a valid pattern. If it
does not find a definition with a valid fill specification, it uses default
patterns instead. ![[cautend]](../common/images/cautend.gif)
Whenever
you use PATTERN statements, the default outline color is the same as the fill
color, for example, a blue bar has a blue outline. The effect is the same
as specifying COUTLINE=SAME. Even when the procedure runs out of user-defined
patterns and generates default patterns, the outlines continue to match the
interior fill color.
To change the outline color of any pattern, whether default
or user-defined, use the COUTLINE= option in the action statement that generates
the chart.
Although the CPATTERN= graphics option is used most often with
default patterns, it does affect the PATTERN statement. With default patterns
(no PATTERN statements specified) it
In conjunction with the PATTERN statement it does the
following:
See also the description of CPATTERN=.
If you specify the
V6COMP graphics option, SAS/GRAPH generates
patterns by rotating the appropriate Version 6 default patterns through all
the colors in the colors list. With V6COMP, all patterns are outlined in the
same color as the fill.
You can specify device-dependent hardware patterns with the types of device
drivers described in this section.
GDDM drivers
include several sets of hardware patterns. These
patterns include both predefined and user-defined (device-dependent) fill
patterns. When you use a hardware pattern with a GDDM driver, specify the
name of the device-dependent pattern set you want the driver to use. This
name will be stored in the GPROLOG string in the device entry for the driver.
Specify the name of the pattern set in either of these ways:
If you do not specify a pattern set name, the device
uses a predefined pattern.
Values for nnn for predefined patterns
are 1 through 16. Values for nnn for device-dependent patterns
are 65 through 128.
Information regarding both types of fill patterns can
be found in GDDM Application Programming Guide. For additional
information on specifying hardware patterns with GDDM drivers, see also the GDDM Base Programming Reference.
TEK42xx series terminal
drivers support the predefined
fill patterns found in the Technical Reference Guide for each terminal. These
drivers can also support user-defined fill patterns. Values for nnn for these drivers are numbers less than 175.
HPLJxxxx drivers for the HP LaserJet support the predefined shading levels
and predefined fill patterns for rectangle fill only. These patterns are
documented in the appropriate HP LaserJet technical manual. Values for nnn for shading levels are 001 through 008. Values for fill patterns
are 009 through 014.
Metagraphics drivers can use the hardware patterns supported
by the device for which they are written. When you specify hardware patterns
for a metagraphics driver, values of nnn can range from 0 through
999.
Pattern sequences
are sets of PATTERN definitions that SAS/GRAPH automatically
generates when a PATTERN statement specifies a fill but not a color. In this
case, the specified fill is used once with every color in the colors list.
If REPEAT= is also used, the resulting PATTERN definitions are repeated the
specified number of times.
SAS/GRAPH generates pattern
sequences when a PATTERN statement uses VALUE= to specify a fill and all of
the following conditions are also true:
In this case, the PATTERN statement rotates the fill
specified by VALUE= through every color in the colors list, generating one
PATTERN definition for every color in the list. After every color has been
used once, SAS/GRAPH goes to the next
PATTERN statement. For example, suppose you specified the following colors
list and PATTERN statements for bar/block patterns:
goptions colors=(blue red green) ctext=black;
pattern1 color=red value=x3;
pattern2 value=r3;
pattern3 color=blue value=l3;
Here,
PATTERN1 generates the first PATTERN definition.
PATTERN2 omits COLOR=, so the specified fill is rotated through all
three colors in the colors list before the PATTERN3 statement is used. This
table shows the color and fill of the PATTERN definitions that would be generated
if nine patterns were required:
Notice that after all the
PATTERN statements are exhausted,
the procedure begins using the default bar and block patterns, beginning with
SOLID. Each fill from the default list is rotated through all three colors
in the colors list before the next default fill is used.
If you use REPEAT= but
not COLOR=, the sequence generated by cycling the definition through the colors
list is repeated the number of times specified by REPEAT=. For example, these
statements illustrate the effect of REPEAT= on PATTERN statements both with
and without explicit color specifications:
goptions colors=(red blue green);
pattern1 color=gold repeat=2;
pattern2 value=x1 repeat=2;
Here,
PATTERN1 is used twice and
PATTERN2 cycles through the list of three colors and then repeats this cycle
a second time:
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.