SAS.GRAPH 9.1 Reference, Volumes I and II

The PATTERN statement defines the characteristics of patterns used in graphs.

Used by:

Global

Assigned by default

Description

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:

GCHART

color, fill pattern, or image for the bars in 2D bar charts; color and fill pattern for the segments of 3D bar charts, pie charts, and star charts .

GCONTOUR

contour levels in contour plots

GMAP

map areas in choropleth , block, and prism maps; blocks in block maps

GPLOT

areas beneath or between plotted lines.

In addition, the SYMBOL statement and certain Annotate facility functions and macros can use pattern specifications. For details see the SYMBOL Statement on page 183 and Chapter 24, Using Annotate Data Sets, on page 587.

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. For two-dimensional bar charts, the PATTERN statement can specify images to fill horizontal or vertical bars. 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 on page 177.

Syntax

PATTERN <1...255>

Options

COLOR= pattern-color

C= pattern-color

IMAGE= fileref external-file

IMAGESTYLE = TILE FIT

REPEAT= number-of-times

R= number-of-times

VALUE= bar/block-pattern

V= bar/block-pattern

VALUE= map/plot-pattern

V= map/plot-pattern

VALUE= pie/star-pattern

V= pie/star-pattern

VALUE=HW xxxnnn

Using the PATTERN Statement

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 255 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=, VALUE=, and IMAGE= options are used. For information on PATTERN definitions, see Working with PATTERN Statements on page 179, as well as the description of COLOR= on page 170, VALUE= on page 173, and IMAGE= on page 171 options.

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.

Altering or Canceling PATTERN Statements

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;

About Default Patterns

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 on page 179 for details about defining patterns.

How Default Patterns and Outlines Are Generated

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.

Things That Affect Default Patterns

Changing any of these conditions may change or override the default behavior:

For a description of these graphics options, see Chapter 8, Graphics Options and Device Parameters Dictionary, on page 261.

Working with PATTERN Statements

With PATTERN statements, you can specify

See Placing Images on the Bars of Two-Dimensional Bar Charts on page 116 for information on filling the bars of two “dimensional bar charts with images using the PATTERN statement.

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.

Explicitly Specifying Patterns

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.

Generating Multiple Pattern Definitions

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 on page 182.

Selecting an Appropriate Pattern

The type of fill you specify depends on the type of graph you are producing:

With...

Use...

bar and block charts (PROC GCHART),blockmaps (PROC GMAP)

VALUE= bar/block-pattern on page 171

contour plots (PROC GCONTOUR), map area surfaces (PROC GMAP)

VALUE=map/plot-pattern on page 173

pie and star charts (PROC GCHART)

VALUE=pie/star-pattern on page 174

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.

Controlling Outline Colors

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.

The Effect of the CPATTERN= Graphics Option

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= CPATTERN on page 274.

Specifying Version 6 Patterns

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.

Specifying Device-Dependent Hardware Patterns

You can specify device-dependent hardware patterns with the types of device drivers described in this section.

GDDM Drivers

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

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

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

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.

Understanding Pattern Sequences

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.

Generating Pattern Sequences

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:

Definition Number

Source

Characteristics: Color

Fill

1

PATTERN1

red

x3

2

PATTERN2

blue

r3

3

PATTERN2

red

r3

4

PATTERN2

green

r3

5

PATTERN3

blue

l3

6

first default

blue

solid

7

first default

red

solid

8

first default

green

solid

9

second default

blue

x1

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.

Repeating Pattern Sequences

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:

Sequence Number

Source

Characteristics: Color

Fill

1

PATTERN1

gold

solid (first default)

2

PATTERN1

gold

solid (first default)

3

PATTERN2

red

x1

4

PATTERN2

blue

x1

5

PATTERN2

green

x1

6

PATTERN2

red

x1

7

PATTERN2

blue

x1

8

PATTERN2

green

x1

Категории