The gchart Procedure - PowerPoint PPT Presentation

The gchart procedure l.jpg
1 / 34

  • Updated On :
  • Presentation posted in: General

The gchart Procedure. The gchart Procedure is used to create bar charts of various types (it can also create pie charts. It’s most basic form would look something like this: proc gchart data =save.padgett; vbar plantht; run ; quit ;. The gchart Procedure.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Download Presentation

The gchart Procedure

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

The gchart procedure l.jpg

The gchart Procedure

  • The gchart Procedure is used to create bar charts of various types (it can also create pie charts.

  • It’s most basic form would look something like this:


    vbar plantht;



The gchart procedure2 l.jpg

The gchart Procedure

  • The vbar (or hbar) statement includes a variable that is referred to as the midpoint variable.

  • If this variable is of the character type, a midpoint is established for each unique value.

  • If it is numeric, SAS establishes classes or bins for it.

  • In either case, the frequency in each class is summarized by vertical (or horizontal) bars.

Basic output l.jpg

Basic Output

This is kind of like

a histogram, except

for the spacing

This value of 75

corresponds to a

class ranging from

67.5 to 82.5

(with a frequency

of about 60)

A few options l.jpg

A Few Options

Sets the number of midpoints

  • In this version


    vbar plantht/space=0type=percent levels=9;



Controls spacing between bars

Changes the statistic from frequency

to percent

So we get l.jpg

So We Get…

This is a histogram

Setting midpoints l.jpg

Setting Midpoints

  • You can also set midpoints explicitly:


    vbar plantht/space=0type=percent




The chart will be constructed

with these 7 values as class


Setting midpoints7 l.jpg

Setting Midpoints

  • We might try…


    value classes









    vbar plantht/space=0type=percent;

    format plantht classes.;



We get l.jpg

We Get…

SAS establishes

the midpoints first

then applies the format


The discrete option l.jpg

The Discrete Option


vbar plantht/discretespace=0type=percent;

format plantht classes.;



Discrete establishes each distinct

value of the midpoint variable as

a midpoint on the graph. If the

variable is formatted, the formatted

values are used for the construction.

If you use discrete with

a numeric variable you


1. Be sure it has only a

few distinct values.


2. Use a format to make

categories for it.

Result l.jpg


Bar width determines

the space available for

writing midpoint values

Bar width l.jpg

Bar Width


vbar plantht/discretespace=0type=percent width=12;

format plantht classes.;



Sets bar width

Horizontal bar charts l.jpg

Horizontal Bar Charts

proc format;

value $pol_type 'CO' = 'Carbon Monoxide' 'LEAD' = 'Lead' 'O3' = 'Ozone'

'SO2' = 'Sulfur Diox.';



hbar pol_type/discretetype=percent;

format pol_type pol_type.;



Horizontal bar charts13 l.jpg

Horizontal Bar Charts

Besides the orientation

of the bars, horizontal bar

charts differ in that they

produce a set of summary

statistics by default.

You can suppress this with

the nostats option.

Summary variables l.jpg

Summary Variables

  • If I want my bar chart to summarize values of some analysis variable for each midpoint, use the sumvar= (and type= ) option.

  • E.g.:


    hbar pol_type/discretesumvar=jobtotal type=meannostats;

    format pol_type $pol_type.;



Result15 l.jpg


Mean total cost is

now summarized for

each pollution type.

Note: Only two types of statistics

are available with summary variables,

the sum (which is the default) and

the mean

Where to find more l.jpg

Where to find more…

Axis modification l.jpg

Axis Modification

  • The two axes on the bar graph are referred to as the midpoint axis (maxis) and the response axis (raxis).

  • Axes can be modified with axis statements. The general form of an axis statement is:


    where n is an integer between 1 and 99.

Axis modification18 l.jpg

Axis Modification

  • Lots of options can be set in an axis statement. E.g.:


    hbar pol_type/discretesumvar=jobtotal type=meannostats maxis=axis1 raxis=axis2;

    format pol_type $pol_type.;

    axis1label=(c=blue h=1.5f=swissb ’Type of Pollution Project');

    axis2order=(0 to 100000 by 20000) minor=(n=1) value=(h=1.25f=swissb)

    label=(f=swissb c=red h=1.5'Mean Job Cost in Dollars');



Assign axis statements

to each chart axis

Choose options/modifications

for specified axis

The result l.jpg

The Result

Some options l.jpg

Some Options

  • c=

    sets axis color

  • w=

    sets axis width

  • label=(options) Sets axis label, some options:

    • h= text height

    • c= text color

    • f= font style

    • ‘Any Text’ is the axis label (overrides any label currently assigned)

    • a= angle of the label text

    • r= rotation of individual characters

Some options21 l.jpg

Some Options

  • value =(options)

    controls appearance of axis values, options are similar to those for label.

  • order=(a to b by c)

    sets axis starting and ending points and increment

  • minor=(options) major=(options)

    • Controls style of major or minor tick marks. Some options:

      • n= number of ticks (for minor it’s the number between major ticks)

      • h= height

      • c= color

      • w= width

Where to find more if you dare l.jpg

Where to Find More (If you dare…)

Bar fill patterns l.jpg

Bar Fill Patterns

  • In all charts to this point, all bars have been red. It is possible to change the color, and it is possible to give each bar a different color.

  • To give bars different colors, specify patternid=midpoint in the hbar or vbar statement.

Bar fill patterns24 l.jpg

Bar Fill Patterns


gives each bar its own

“pattern” or color

Setting a color list l.jpg

Setting a Color List

  • The goptions statement allows us to set several global graphics options, one of which is a color list:

    goptionscolors=(blue red yellow cyan orange);


    hbar pol_type/discretesumvar=jobtotal type=meannostats

    maxis=axis1 raxis=axis2 patternid=midpoint;

    format pol_type $pol_type.;

    axis1label=(c=blue h=1.5f=swissb ’Type of Pollution Project');

    axis2order=(0 to 100000 by 20000)

    minor=(n=1) value=(h=1.25f=swissb) label=(f=swissb c=red h=1.5’Mean Total Project Cost');



This color becomes

the default axis and

text color

Setting a color list26 l.jpg

Setting a Color List

  • Remember, setting a color is an option for any axis statement, so if you change the color list, you can always override the first color behavior in the axis statement.

  • coutline= is an option you can use in the vbar or hbar statement to set the bar outline color.

Alternate fill patterns l.jpg

Alternate Fill Patterns

  • You can specify some alternate fill patterns for bars (particularly useful for creating black & white charts) with a pattern statement(s).

  • The two major options in the pattern statement are c= and v=, for color and fill, respectively. Rules:

    • If no color is specified, the fill pattern is applied for each color in the color list.

    • If a color is specified, the fill pattern is applied only once.

    • The fill pattern can be set to on of Ln, Rn or Xn; where n is an integer between 1 and 5.

An example l.jpg

An Example

L, R and X


to left-leaning,


and crossed

lines. The


controls the


Add these pattern statements to your previous code to get the above bar graph:

pattern c=black v=L1; pattern c=black v=R1;

pattern c=black v=X1; pattern c=black v=L5;

pattern c=black v=R5;

The group option l.jpg

The group= option


hbar marsh/group=flower discretesumvar=plantht type=meannostats maxis=axis1 raxis=axis2 gaxis=axis3 patternid=midpoint;

format marsh marsh. flower flower.;

axis1label=(c=blue h=1.5f=swissb ’Marsh');

axis2order=(0 to 120 by 20) minor=(n=1) value=(h=1.25f=swissb)

label=(f=swissb c=red h=1.5'Mean Plant Height in Centimeters');

axis3label=(c=green h=1.5f=swissb ’Flowering');



Sets up a “grouping” variable—bars for the

full set of midpoints are constructed for each

value of the group variable

We can modify the

group axis as well

Grouped bar chart l.jpg

Grouped Bar-Chart

The subgroup option l.jpg

The subgroup= option

Subgroup creates

stacked bars across levels

of a variable. (Not

appropriate for means)

The subgroup option32 l.jpg

The subgroup= option

proc gchart data=save.padgett;

hbar marsh/group=flower discrete type=percent nostats maxis=axis1 raxis= axis2 gaxis=axis3 patternid=subgroup subgroup=form legend=legend1;

format marsh $marsh. flower $flower.;

axis1 label=(c=blue h=1.5 f=swissb 'Marsh');

axis2 order=(0 to 50 by 10) minor=(n=1)

value=(h=1.25 f=swissb)

label=(f=swissb c=red h=1.5 );

axis3 label=(c=green h=1.5 f=swissb 'Flowering');

legend1 across=1 label=(c=blue 'Form of Plant') frame cshadow=gray position=(top right) mode=share;

Legend modifications l.jpg

Legend Modifications

  • In a legend statement, some options available are:

    • label= similar to what is available in the axis statement.

    • across= and down= sets limit for row or column length in the legend (only use one)

    • frame draws a border around the legend

    • cshadow= places a shadow “behind” the legend in the specified color.

Legend modifications34 l.jpg

Legend Modifications

  • position=( ) places the legend, choices include:

    • inside/outside

    • left/right/center

    • top/bottom/middle

    • (default is bottom center outside).

  • mode= tells how to allocate space for the chart and legend, choices are:

    • reserve: sets aside space for the legend before graph is drawn (can’t be used with position set to inside)

    • share or protect: allows graph and legend to use the same space. Share has the graph drawn over the legend if they intersect, protect does the opposite.

  • Login