Click here to see the SAS code.
Click here to see the SAS code. (buttons on left)
Click here to see the SAS code. (charts on right)
This is a proof-of-concept I put together for John Bell (Risk solution manager)
to show that good-old SAS/Graph and SAS/Intrnet could provide much of the functionality
that other companies are using 'flash' for. Specifically, here is the flash demo
by Xcelsius Enterprise that I was imitating:
Flash Demo
*Note that this SAS example will only work on the SAS intranet,
where you have access to the SAS/Intrnet server where this
job lives (sorry about that, you folks on the external www!)
Notice that there are many 'buttons' around the screen, and
hotspots on the graphs, that you can click on to change the
graphs.
The Xcelsius graphs are a bit more flashy (cute, 3d shaded, and
somewhat more interactive), but the sas version has some advantages:
Each time you click, a new sas/graph is generated, with the freshest
data directly from the database.
The reference lines in the sas bar charts are at meaningful locations
(not sure what numbers the Xcelsius reflines line up with in thier
charts.)
In my Deposit Mix and Channels graphs, if you click on the bars,
you get the corresponding pie chart (the Xcelsius graphs are
static in these two examples, and do not change).
In the SAS/Graph Loans and Deposits charts, the overlapping December
values in one year match the corresponding December bar in the
graph for the next year (whereas they don't match up in the
Xcelsius graphs). The SAS/Graph ones match up, because the
graphs are all dynamically built from the same actual database.
You can view the SAS version with any web browser (since it uses
simple html frames and gif files), whereas you have to use a
flash-capable web browser to view the Xcelsius graphs.
-----
Technology Used:
To get the buttons on the left, and the graphics on the right, I use
2 html frames.
The buttons in the left frame are created using annotated text,
with 'cborder' to draw the button/border around the text.
The 'html' variable is used to contain the href drilldown for
each button, and target="body" is used to tell it to do the
drilldown/href in the "body" frame (rather than the current frame).
A variety of techniques are used for the graphics in the right-hand frame:
Risk:
----
The blue bar, and blue outline are created using annotate (this annotate
is re-used in all the graphs), and the white text on top of the blue bar
is the title1 with color=white.
The 'buttons' (summary, northeast, east, etc) are created using annotated
text (similar to the buttons in the left frame). Each time the graph is
drawn, I reverse the colors for the selected button.
The 'summary' button does a gplot. The official 'bubble plot' doesn't
allow you to color the bubbles separately, so I use annotated pies instead.
The 'northeast', 'east', etc use a simple gchart pie chart.
Mkt. Share:
----------
This uses a gchart choro map. Each time you select a state, I modify a variable
in the data= dataset, so I can shade the selected state.
I put a bunch of space at the bottom of the map using a blank footnote with
a large height=. I then annotate the text of the table in the blank space.
Growth:
------
This is a grouped bar chart. Rather than using the real date values on the
horizontal axis, I convert them to character (that way, I can do the years
and also the quarters, like the original chart did).
The buttons to the right are (once again, you guessed it) the annotated
text, with cbox and cborder. When you select one, I reverse the colors.
Loans/Deposits:
--------------
Simple bar chart, using annotated text as buttons along the top.
My reflines and minor tickmarks are much more meaningful/useful than
the ones in the original plot.
Deposit Mix/Channels:
--------------------
I created a custom greplay template to position 3 sas/graph outputs on
the same page. The top one is a grouped bar chart (I suppress the individual
bar/midpoint labels, and only show the group label). The bottom/right is a
pie chart, and the bottom/left is a 'proc gslide' with a bunch of title
and footnote statements to show the text (I could have also used annotated
text, if I needed more precise control). I turn off the 'goptions display',
then create the 3 graphs and store the gseg's using name=, and then turn on
goptions display again, and use 'proc greplay' to display the 3 gseg's
into the appropriate panels of my custom greplay template.
When you click on a bar, it updates the pie (this is an improvement
over the original).
Highlights:
----------
This does a simple bar chart, followed by a 'proc report' with a special 'link'
column that has html links encoded into it (they have to be encoded differently
than they are in sas/graph. When you click on the links in the report, the
bar chart gets re-drawn with that data.