ABC s of Graphs in Version 8 Caroline Bahler, Meridian Software, Inc.

Similar documents
Using SAS/GRAPH Software to Create Graphs on the Web Himesh Patel, SAS Institute Inc., Cary, NC Revised by David Caira, SAS Institute Inc.

ODS and Web Enabled Device Drivers: Displaying and Controlling Large Numbers of Graphs. Arthur L. Carpenter and Richard O. Smith Data Explorations

The GANNO Procedure. Overview CHAPTER 12

Chapter 13 Introduction to Graphics Using SAS/GRAPH (Self-Study)

Fly over, drill down, and explore

Using SAS/GRAPH Software to Create Graphs on The Web Himesh Patel, SAS Institute Inc., Cary, NC

SAS/GRAPH Introduction. Winfried Jakob, SAS Administrator Canadian Institute for Health Information

It s Not All Relative: SAS/Graph Annotate Coordinate Systems

The Evolution of a SAS/GRAPH Application Jenine Eason, AutoTrader.com, Atlanta, GA

Interactive Graphs from the SAS System

CREATING DRILL-DOWN GRAPHS USING SAS/GRAPH AND THE OUTPUT DELIVERY SYSTEM Curtis A. Smith, Defense Contract Audit Agency, La Mirada, CA.

The GSLIDE Procedure. Overview. About Text Slides CHAPTER 27

SAS/GRAPH 9.4: Java Applets and ActiveX Control User s Guide

OS/390 DASD I/O Drill Down Computer Performance Chart Using ODS SAS/GRAPH & MXG Software

Data Driven Annotations: An Introduction to SAS/GRAPH s Annotate Facility

Want Quick Results? An Introduction to SAS/GRAPH Software. Arthur L. Carpenter California Occidental Consultants

USING PROC GMAP AND DRILL-DOWN GRAPHICS FOR DATA QUALITY ASSURANCE Meghan Arbogast, Computer Sciences Corporation, Corvallis, OR

The Basics of Map Creation with SAS/GRAPH. Mike Zdeb School of Public Health Rensselaer, NY

A Dynamic Imagemap Generator Carol Martell, Highway Safety Research Center, Chapel Hill, NC

Coders' Corner. Paper ABSTRACT GLOBAL STATEMENTS INTRODUCTION

Creating Regional Maps with Drill-Down Capabilities Deb Cassidy Cardinal Distribution, Dublin, OH

New Visualization in V8.2

Arthur L. Carpenter California Occidental Consultants

Paper SIB-096. Richard A. DeVenezia, Independent Consultant, Remsen, NY

CHAPTER 1 Introduction to SAS/GRAPH Software

Tips to Customize SAS/GRAPH... for Reluctant Beginners et al. Claudine Lougee, Dualenic, LLC, Glen Allen, VA

NEW FEATURES IN FOUNDATION SAS 9.4 CYNTHIA JOHNSON CUSTOMER LOYALTY

INTRODUCTION TO THE SAS ANNOTATE FACILITY

Information Visualization

How to annotate graphics

DESIGN AND IMPLEMENTATION

Creating Maps in SAS/GRAPH

The GREMOVE Procedure

Paper Mapping Roanoke Island Revisited: An OpenStreetMap (OSM) Solution. Barbara Okerson, Anthem Inc.

Multiple Graphical and Tabular Reports on One Page, Multiple Ways to Do It Niraj J Pandya, CT, USA

SAS Graph: Introduction to the World of Boxplots Brian Spruell, Constella Group LLC, Durham, NC

SparkLines Using SAS and JMP

Picturing Statistics Diana Suhr, University of Northern Colorado

Creating Population Tree Charts (Using SAS/GRAPH Software) Robert E. Allison, Jr. and Dr. Moon W. Suh College of Textiles, N. C.

Innovative Graph for Comparing Central Tendencies and Spread at a Glance

Making Presentations More Fun with DATA Step Graphics Interface (DSGI) Hui-Ping Chen, Eli Lilly and Company, Indianapolis, Indiana

Using MACRO and SAS/GRAPH to Efficiently Assess Distributions. Paul Walker, Capital One

ODS The output delivery system

PharmaSUG Paper TT10 Creating a Customized Graph for Adverse Event Incidence and Duration Sanjiv Ramalingam, Octagon Research Solutions Inc.

Effective Forecast Visualization With SAS/GRAPH Samuel T. Croker, Lexington, SC

SAS Graphs in Small Multiples Andrea Wainwright-Zimmerman, Capital One, Richmond, VA

Six Cool Things You Can Do In Display Manager Jenine Milum, Charlotte, NC Wachovia Bank

ABSTRACT INTRODUCTION SESUG RV

Annotate Dictionary CHAPTER 11

Using Annotate Datasets to Enhance Charts of Data with Confidence Intervals: Data-Driven Graphical Presentation

Time Contour Plots. David J. Corliss Magnify Analytic Solutions, Detroit, MI

USING SAS PROC GREPLAY WITH ANNOTATE DATA SETS FOR EFFECTIVE MULTI-PANEL GRAPHICS Walter T. Morgan, R. J. Reynolds Tobacco Company ABSTRACT

Paper Abstract. Introduction. SAS Version 7/8 Web Tools. Using ODS to Create HTML Formatted Output. Background

IMPROVING A GRAPH USING PROC GPLOT AND THE GOPTIONS STATEMENT

PharmaSUG 2012 Paper CC13

- Figure 1 :~!!~'!~,~!!~ MANAGEMENT GRAPHICS IN A QUALITY ASSURANCE ENVIRONMENT. Shirley J. McLelland. SAS Code used to produce the graph,

Paper Time Contour Plots. David J. Corliss, Wayne State University / Physics and Astronomy

Controlling Titles. Purpose: This chapter demonstrates how to control various characteristics of the titles in your graphs.

Usinq the VBAR and BBAR statements and the TEMPLATE Facility to Create side-by-side, Horizontal Bar Charts with Shared Vertical Axes Labels

Developing a Dashboard to Aid in Effective Project Management

Tips and Tricks in Creating Graphs Using PROC GPLOT

Modifying Graphics in SAS

Building an Automated Data Management, Analysis and Reporting Tool That Runs Against Pre-Processed Web Server Access Log File Data.

SUGI 29 Posters. Paper A Group Scatter Plot with Clustering Xiaoli Hu, Wyeth Consumer Healthcare., Madison, NJ

Internet/Intranet, the Web & SAS

Data Annotations in Clinical Trial Graphs Sudhir Singh, i3 Statprobe, Cary, NC

Graphical Techniques for Displaying Multivariate Data

How to Make an Impressive Map of the United States with SAS/Graph for Beginners Sharon Avrunin-Becker, Westat, Rockville, MD

Internet, Intranets, and The Web

ABC Macro and Performance Chart with Benchmarks Annotation

New SAS V8 Tricks for Old SAS V6 Dogs: Tips from the Command Line Louise Hadden, Abt Associates Inc., Cambridge, MA

The G3GRID Procedure. Overview CHAPTER 30

Create Flowcharts Using Annotate Facility. Priya Saradha & Gurubaran Veeravel

Backsplash Patterns for Your World: A Look at SAS OpenStreetMap (OSM) Tile Servers

CIP (International Potato Center, part of the Consultative Group on International Agricultural Research)

And Now, Presenting...

And Now, Presenting... Presentation Quality Forecast Visualization with SAS/GRAPH Samuel T. Croker, Independent Consultant, Lexington, SC

Week 05 Class Activities

Custom Map Displays Created with SAS/GRAPH Procedures and the Annotate Facility Debra Miller, National Park Service, Denver, CO

Using SAS/GRAPH Software to Analyze Student Study Habits. Bill Wallace Computing Services University of Saskatchewan

Figure 1. Paper Ring Charts. David Corliss, Marketing Associates, Bloomfield Hills, MI

THE IMPACT OF DATA VISUALIZATION IN A STUDY OF CHRONIC DISEASE

Generating Participant Specific Figures Using SAS Graphic Procedures Carry Croghan and Marsha Morgan, EPA, Research Triangle Park, NC

Tips for Producing Customized Graphs with SAS/GRAPH Software. Perry Watts, Fox Chase Cancer Center, Philadelphia, PA

Compute; Your Future with Proc Report

A Plot & a Table per Page Times Hundreds in a Single PDF file

Elixir Ad-hoc Report. Release Elixir Technology Pte Ltd

Using SAS Graphics Capabilities to Display Air Quality Data Debbie Miller, National Park Service, Denver, CO

Creating Forest Plots Using SAS/GRAPH and the Annotate Facility

Data Explore Matrix Quality Control by Exploring and Mining Data in Clinical Study

ABSTRACT. This paper will focus on two of these pieces: ODS (Output Delivery System) SASlIntrNet

TS-659: Exporting SAS/GRAPH Output to PDF Files from Release 8.2 and higher

Focusing healthcare quality improvement dollars: Using SAS

The Plot Thickens from PLOT to GPLOT

Geospatial Analysis with PROC GMAP

Using SAS Graphics to Explore Behavioral Health Cost Risk Barbara B. Okerson, HMC, Richmond, VA

Displaying Multiple Graphs to Quickly Assess Patient Data Trends

Overview 14 Table Definitions and Style Definitions 16 Output Objects and Output Destinations 18 ODS References and Resources 20

Presentation Quality Graphics with SAS/GRAPH

Maintaining a 'Look and Feel' throughout a Reporting Package Created with Diverse SAS Products Barbara B Okerson, Anthem, Inc.

Transcription:

ABC s of Graphs in Version 8 Caroline Bahler, Meridian Software, Inc. Abstract Version 8 has greatly increased the versatility and usability of graphs that can be created by SAS. This paper will discuss the new graphic capabilities and how they can be used to upgrade the look and feel of graphs. In addition, the Output Delivery System (ODS) in regards to graph creation and drill down capabilities will be discussed. Introduction The introduction of Version 8 has included new options and abilities for creating graphics from your data. This new functionality includes the availability of the Output Delivery System (ODS) to enable created graphs to be displayed within a browser. An understanding of ODS is assumed. The object of this paper is to give an overview of all the new capabilities in Version 8. Updated Graph Appearance 3D Charts - Proc GCHART can now produce 3D bar and pie charts (see Appendix for example and Fig. 1a) Fig 1b. Labeling a point on a plot. Text height Text height can be specified as points in AXIS, GOPTIONS, LEGEND, TITLE, FOOTNOTE and NOTE statements (see footnote statements in appendix SESUG2). Drivers In Version 8, several new browser-dependent drivers have been introduced. The new additions are listed below Drivers HTML WEBFRAME ACTIVEX JAVA Procedure Availability GCHART, GCONTOUR, GMAP, GPLOT, and G3D GCHART, GCONTOUR, GMAP, GPLOT, and G3D GCHART, GCONTOUR, GMAP, GPLOT, and G3D GCHART, GCONTOUR, GMAP, GPLOT, and G3D Fig 1a. Vertical 3D bar chart. Labeling points the SYMBOL statement has a new option called POINTLABEL. This option will label specific points within a GPLOT or all points depending upon the options selected (see Appendix for example and Fig.1b). The first, HTML, creates a single HTML file that displays each of the created graphs one after another. Graphs are viewed by scrolling down through the HTML document. This type of output can also be obtained using one of the GIF drivers and ODS. The second, WEBFRAME, creates two (2) sets of GIF files for each graph produced, INDEX.HTML, SASTHUMB.HTML, and associated HTML files for each of the graphs produced. The final product is a web page that contains two (2) sections. The left-

hand section is SASTHUMB.HTML and contains a set of smaller (thumbnail) versions of each graph produced. These graphs can be clicked to display a full-size version of the graph on the right-hand side (see Fig 1). To produce this type of graph: Use a GOPTIONS statement to define the device needed. In the example below, RESET was used to clear all previous graphic options. goptions reset=all device=webframe gsfname=odsout transparency noborder vsize=7in hsize=6in; The ACTIVEX driver creates a graph utilizing a set of ACTIVEX controllers. To create a graph with the ACTIVEX driver - Use the GOPTION statement to set the driver and pixel size of the graph. goptions reset=all device=activex xpixels=500 ypixels=350 cback=white border; Create a graph (see Appendix for example). Note ODS is required for creating the HTML output. An example of the ODS HTML statement is below: ods html file=precip; Create a set of graphs using a BY statement (see Appendix for example). Note on graph numbering WEBFRAME automatically numbers the graphs created using the text entered in the NAME option (PLOT, VBAR etc) and starting with the name and then numbering each subsequent graph. The number depends upon the internal counter and how many times you have created the graphs. Fig 3. Graph created with ACTIVEX driver. The JAVA driver creates a graph utilizing a JAVA applet. To create a graph using the JAVA driver - Use the GOPTION statement to set the driver and pixel size of the graph. goptions reset=all device=java xpixels=500 ypixels=350 cback=white border; Fig. 2. Output produced by WEBFRAME. The next two (2) drivers need to be used in conjunction with ODS and come under the heading of super cool graphs. The ACTIVEX and JAVA drivers create graphs that are interactive in that the user can change how the graph colors and labels appear, how the data is summarized, how the graph is oriented (horizontal or vertical), etc. Note - the JAVA driver has a richer set of controls including the ability to save the changed graph. The advantage of using this type of graph is that users can interact with the graph, changing it so that it meets their needs (Fig 3 and 4). Create a graph (see Appendix for example). Note: the JAVA driver is creating a JAVA applet and load time can be slow!

defined to be clickable using either the IMAGEMAP option in the PROC statement or HTML and HTML_LEGEND options in the plotting, charting or mapping statement. Note: HTML_LEGEND defines areas of the legend as clickable. A set of lower summary level graphs, maps, or reports are created that will be accessed when the user clicks on the appropriate area of the high level graph or map. Note: it is possible to have one or more levels of drill-downs that are dependent on a specific hierarchy. Fig 4. Graph created with JAVA driver. In determining when to use the ACTIVEX versus the JAVA driver the following factors need to be considered: Type of graph being created - are drill-down capabilities needed? Use JAVA driver. Type of controls needed if the ability to save the graph is needed then use the JAVA driver Type of browser that will be used to view the graph. Note: the ACTIVEX driver controls are not currently supported by any ACTIVEX plugs in Netscape 1. Drill-Down Capabilities Drilling-down is the ability to click on a point on a graph or map and link to another graph or report that contains information that is specific for the region selected. A clickable region can be a section of a bar in a bar chart, a map region, a point on a plot, or a graphic area designed using ANNOTATE. For example, drilling-down could occur when a user clicks on a state and is linked to a graph that contains the sales trend for that state. Graphs with drill-down capabilities can be created from the following procedures with the use of ODS: PROC GANNO PROC GCHART PROC GMAP PROC GPLOT The following driver can be used to create drilldown graph in conjunction with ODS: JAVA driver Anatomy of a drill-down graph The data used to create all of the graphs, maps or reports is prepared and variables are added that contain link (anchor) information. A high level graph or map is created with summary information. Areas of the graph are The following example creates a map of the US with each state clickable. Prepare data in this example the following DATA step creates a data set specifically designed to assign a drillable area to each state. Note: the drill variable defines the anchor for a drillable area. In this case it links to a single HTML document but the link could be to multiple documents. proc sort data=maps.us out=makemap(keep=state) nodupkey; by state; data makemap; set makemap; y=1; n=_n_; statedrill=compress( HREF="states.html #state n " ); Assign the ODS and GOPTION parameters for the map. filename odsout g:\sesug2000\papers ; ods html body= state.html nogtitle path=odsout; goptions device=gif ftext=swissl transparency hsize=7in vsize=6in; Create the map. The HTML option is used on the CHORO statement to indicate the variable that contains the link information. Note: in this case the drillable area is the state. pattern color=green; title1; proc gmap map=maps.us data=makemap; id state; choro y / coutline=blue nolegend

quit; html=statedrill; Close the map ODS HTML call. Create the data for the report. proc sort data=maps.uscity(keep=state city pop capital) out=cities; where pop > 40000; by state city; data cities; set cities; statename=fipnamel(state); Fig 5. Map created with clickable areas. North Carolina has been clicked. Assign ODS parameters for the report. A new parameter is added anchor. Use of the anchor parameter ensures that when the state is clicked, the correct part of the state report will be displayed. In this case, the anchor names start with STATE1 and will automatically be incremented. Note: This matches the statedrill parameter created in the makemap data set which uses n instead of the state FIP s code to number the #state. ods html body= states.html anchor= state1 path=odsout; Create the report and close the ODS statement. options nobyline; proc report data=cities nowd headline; by state statename; title #byval(statename) ; column city pop; define city / display width=50 City ; define pop / display width=20 format=comma10. Population (1990) ; Figures 4 and 5 demonstrate how the map and report function. State.html is used to display the US map and when a user clicks a state, the city report is displayed with the appropriate section for that state. Fig 6. North Carolina portion of report displayed when state clicked. Clickable graphs from GCHART and GPLOT output can be created using the same steps as described above. The next drilldown example illustrates creating a drilldown bar chart where clicking on a bar opens another bar chart. This type of drilldown can be created for total bars or segments of a bar and is very effective when used with hierarchical data. The code for this example is in the Appendix, SESUG4. Fig 7 shows the top level bar chart. Each bar within this chart will display a bar chart for with data specific for that month. Fig 8 illustrates one of the lower level graphs.

Fig 7. Top level bar chart. Fig. 8. Lower level bar chart. The final type of drilldown graph to be discussed is created using the JAVA driver. An example of the output created is in Fig. 9. Each bar when clicked will display a graph containing the individual sections. References 1. TS602 Compatibility Document for the ACTIVEX Device Driver. http://ftp.sas.com/ techsup/download/technote/ts602.html 2. GCHART. SAS Online Doc Version 8. SAS Graph Software Reference. Proc GCHART. 3. GPLOT. SAS Online Doc Version 8. SAS Graph Software Reference Proc. GPLOT. 4. GMAP. SAS Online Doc Version 8. SAS Graph Software Reference Proc GMAP. 5. SYMBOL. SAS Online Doc Version 8. SAS Graph Software Reference SAS/GRAPH Statement. SYMBOL. 6. SAS Online Doc Version 8. SAS Graph Software Reference. Proc G3D. 7. JAVA driver. http://www.sas.com/rnd/webgraphs/javaapplets. htm 8. ACTIVEX driver. http://www.sas.com/rnd/webgraphs/activexgrap hs.htm 9. Web Graph Examples. http://www.sas.com/products/graph/demos/inde x.html 10. Output Delivery System. SAS Online Doc Version 8. BASE SAS Software, Guide to the Output Delivery System. 11. SAS Institute Inc. 1999. What s New in SAS Software for version 7 and the Version 8 Developer s Release, Cary, NC. SAS Institute. Pp.221-230. Trademarks SAS and all SAS products are trademarks or registered trademarks of SAS Institute Inc. Meridian Software, Inc. is a registered trademark of Meridian Software, Inc. Contact Information Caroline Bahler Meridian Software, Inc. 12204 Old Creedmoor Road Raleigh, NC 27613 (919) 518-1070 merccb@meridian-software.com Fig 9. Drill down graph created with JAVA driver.

Appendix Code to generate the examples Used by all programs. libname metdata g:\data\meterological ; filename odsout g:\sesug2000\papers ; /*----------------------------------------------------------------* * PROGRAM: SESUG1.SAS * * DESCRIPTION: Creating a 3D vertical bar chart * goptions device=gif text=swissl transparency hsize=7in vsize=6in ; /* bar label label a specific bar */ data barlabel; length color style $ 8; retain color 'yellow' when 'a' style 'swiss' xsys ysys '2' position '9' size 3 hsys '3'; set precip; where date='01sep1999'd and station='raleigh DURHAM WSFO AP'; midpoint=date; text='dennis and Floyd'; ods html body='pcpdev.html' path=odsout nogtitle; /* create a 3D bar chart with block bars */ proc gchart data=metdata.ncprecip annotate=barlabel; where station='raleigh DURHAM WSFO AP'; title1 f=swiss h=2 'Deviation from Normal Precipitation'; title2 f=swiss h=1.5 'Station : Raleigh-Durham Airport'; footnote j=l 'Precipitation data from Southeast Regional Climate Center - Seasonal Summaries'; axis1 label=(a=90 f=swiss h=1.5 'Deviation (in)'); axis2 label=none; vbar3d date / sumvar=dev discrete raxis=axis1 maxis=axis2 shape=b outside=sum; quit; /*----------------------------------------------------------------* * PROGRAM: SESUG2.SAS * * DESCRIPTION: Labeling a point on a plot * data precip; set metdata.ncprecip; where station='raleigh DURHAM WSFO AP'; if date='01sep1999'd then label='dennis and Floyd'; ods html body='plotlabel.html' path=odsout nogtitle; /* create plot with labeled point */ proc gplot data=precip; title1 f=swiss h=14pt 'Precipitation'; title2 f=swissb h=12pt 'Station : Raleigh-Durham Airport'; footnote j=l h=8pt 'Precipitation data from SE Reg Climate Center - Seasonal Summaries'; axis1 label=(a=90 f=swiss h=10pt 'Precipitation (in)'); axis2 label=none value=(h=8pt); symbol v=dot i=join c=blue pointlabel = ("#label" c=red); plot precip*date / vaxis=axis1 haxis=axis2; quit;

/*----------------------------------------------------------------* * PROGRAM: SESUG3.SAS * * DESCRIPTION: JAVA and ACTIVEX Graph Creation * filename precip g:\sesug2000\papers\precip1.html ; filename precip g:\sesug2000\papers\precip2.html ; /*-----------------------------------------*/ /* ACTIVEX driver - graph creation */ /*-----------------------------------------*/ ods html file=precip; goptions reset=all device=activex xpixels=500 ypixels=350 cback=white border; proc gchart data=metdata.ncprecip; where station= RALEIGH DURHAM WSFO AP ; title1 f=swiss h=2 Precipitation ; title2 f=swiss h=1.5 Station : Raleigh-Durham Airport ; footnote j=l Precipitation data from Southeast Regional Climate Center - Seasonal Summaries ; axis1 label=none; axis2 label=none value=(h=.8 f=swiss); vbar3d date / sumvar=precip discrete raxis=axis1 maxis=axis2 shape=s coutline=white; quit; /*------------------------------------------*/ /* JAVA driver - graph creation */ /*------------------------------------------*/ ods html file="precip" parameters=("drilldownmode"="local"); goptions reset=all device=java xpixels=500 ypixels=350 cback=white border; proc gchart data=metdata.ncprecip; where station= RALEIGH DURHAM WSFO AP ; title1 f=swiss h=2 Precipitation ; title2 f=swiss h=1.5 Station : Raleigh-Durham Airport ; footnote j=l Precipitation data from Southeast Regional Climate Center - Seasonal Summaries ; axis1 label=none; axis2 label=none value=(h=.8 f=swiss); vbar3d date / sumvar=precip discrete raxis=axis1 maxis=axis2 shape=s coutline=white; quit;

/*----------------------------------------------------------------* * PROGRAM: SESUG4.SAS * * DESCRIPTION: Creating a drill-down bar chart and subsequent * * graphs * /* prepare data for top-level graph average precipitation */ data precip; set metdata.ncprecip; length city $50.; if index(station,'asheville') > 0 then city='asheville'; if index(station,'raleigh') > 0 then city='raleigh'; if index(station,'charlotte') > 0 then city='charlotte'; if index(station,'wilmington') > 0 then city='wilmington'; if index(station,'greensboro') > 0 then city='greensboro'; if city ne ' ' then output; proc sort data=precip; by date; proc summary data=precip; by date; var precip; output out=avgpcpnc mean=precip; /* average precipitation data with drilldown by month added */ data avgpcpnc; set avgpcpnc; select(date); when('01may1999'd) datedrill='href="city.html"'; when('01jun1999'd) datedrill='href="city1.html"'; when('01jul1999'd) datedrill='href="city2.html"'; when('01aug1999'd) datedrill='href="city3.html"'; when('01sep1999'd) datedrill='href="city4.html"'; when('01oct1999'd) datedrill='href="city5.html"'; when('01nov1999'd) datedrill='href="city6.html"'; when('01dec1999'd) datedrill='href="city7.html"'; when('01jan2000'd) datedrill='href="city8.html"'; when('01feb2000'd) datedrill='href="city9.html"'; when('01mar2000'd) datedrill='href="city10.html"'; when('01apr2000'd) datedrill='href="city11.html"'; otherwise; end; goptions device=gif ftext=swissl transparency hsize=9in vsize=7in ; ods html body='date.html' path=odsout nogtitle; proc gchart data=avgpcpnc; title1 f=swiss h=2 'Average Precipitation'; title2 f=swiss h=1.5 'North Carolina - Asheville, Charlotte, Greensboro, Raleigh, Wilmington'; footnote j=l 'Precipitation data from Southeast Regional Climate Center - Seasonal Summaries'; axis1 label=(a=90 f=swiss h=1.5 'Avg Precip (in)'); axis2 label=none value=(h=0.9); pattern1 c=blue; vbar3d date / sumvar=precip discrete raxis=axis1 maxis=axis2 shape=b coutline=white html=datedrill name='date'; quit;

/* prepare data for secondary graphs */ proc sort data=precip; by date city; proc summary data=precip; by date city; var precip; output out=avgpcp mean=precip; /* create a separate html file for each graph */ ods html body= city.html path=odsout nogtitle newfile=page; options nobyline; proc gchart data=avgpcp; by date; title1 f=swiss h=2 Precipitation ; title2 f=swiss h=1.5 North Carolina - #byval(date) ; footnote j=l Precipitation data from Southeast Regional Climate Center - Seasonal Summaries ; axis1 label=(a=90 f=swiss h=1.5 Avg Precip (in) ) order = 0 to 30 by 2; axis2 label=none value=(h=.8 f=swiss); vbar3d city / sumvar=precip raxis=axis1 maxis=axis2 shape=b coutline=white name= city des= #byval(date) ; quit; /*----------------------------------------------------------------* * PROGRAM: SESUG5.SAS * * DESCRIPTION: Creating a drill-down bar chart with JAVA driver * /* In this case the drilldown parameter will continue until the lowest level */ ods html file=precip3 parameters=("drilldownmode"="local"); goptions reset=all device=java xpixels=700 ypixels=550 cback=white border; proc gchart data=avgpcp; title1 f=swiss h=2 Precipitation ; title2 f=swiss h=1.5 North Carolina (May 1999 - April 2000) ; footnote j=l Precipitation data from Southeast Regional Climate Center - Seasonal Summaries ; axis1 label=(f=swiss h=1.5 Avg Precip (in) ); axis2 label=none value=(h=.8 f=swiss); hbar3d date / sumvar=precip type=mean subgroup=city raxis=axis1 maxis=axis2 discrete coutline=white; quit;