![](https://blogs.sas.com/content/iml/files/2012/04/randsimplex.png)
It is easy to simulate data that is uniformly distributed in the unit cube for any dimension. However, it is less obvious how to generate data in the unit simplex. The simplex is the set of points (x1,x2,...,xd) such that Σi xi = 1 and 0 ≤ xi ≤ 1
It is easy to simulate data that is uniformly distributed in the unit cube for any dimension. However, it is less obvious how to generate data in the unit simplex. The simplex is the set of points (x1,x2,...,xd) such that Σi xi = 1 and 0 ≤ xi ≤ 1
During SAS Global Forum 2012, I had conversations with many SAS users who wanted to create Forest Plots. However, there was one new twist. The study names were subgrouped by categories like 'Age', 'Sex', etc., with multiple entries under each subgroup. The name of each study within the subgrouped was indented
Robert Allison posted a map that shows the average commute times for major US cities, along with the proportion of the commute that is attributed to traffic jams and other congestion. The data are from a CEOs for Cities report (Driven Apart, 2010, p. 45). Robert use SAS/GRAPH software to
A few weeks ago I wrote an article on using the non breaking space character to prevent stripping of leading and trailing blanks in a string. Since then, I have discovered a few more instances where the nbsp can be a useful tool for creating graphs. One such instance came up last week
Pie charts have been the subject of some criticism when they are used to compare measures across multiple categories. It is generally accepted that comparison of magnitudes represented as angular measures from varying baselines is not effective. However here are some use cases where a pie chart does quite well. When it comes
Sometimes a small option can make a big difference. Last week I thought to myself, "I wish there were an option that prevents variable labels from appearing in a table or graph." Well, it turns out that there is! I was using PROC MEANS to display some summary statistics, and
Forest plots come in many flavors. An example of a Forest plot using GTL is available on the SAS support web site. Simple forest plots can also be created using SGPLOT procedure by using the SCATTER statement with MARKERCHAR to display data aligned with the plot by study names. One issue
I've seen analyses of Fisher's iris data so often that sometimes I feel like I can smell the flowers' scent. However, yesterday I stumbled upon an analysis that I hadn't seen before. The typical analysis is shown in the documentation for the CANDISC procedure in the SAS/STAT documentation. A (canonical)
In the Clinical Research domain, there is often the need to display lab values by treatment or test and it is often useful to view this data along with reference lines showing the normal ranges. The obvious way is to use reference lines to denote the normal ranges. SGPLOT Code: proc sgplot data=band; scatter x=x y=y
Many SAS procedures can produce ODS statistical graphics as naturally as they produce tables. Did you know that it is possible to obtain the numbers underlying an ODS statistical graph? This post shows how. Suppose that a SAS procedure creates a graph that displays a curve and that you want
When comparing results by category and group, putting the items to be compared close together usually leads to a graph that is easier to decode. Take the case of the data (simulated) shown below. Here we have population by age group and sex. To compare the population by sex, it is
A key element of graphs used for analysis of safety data for clinical research is the inclusion of statistical data (or tables) about the study that are aligned with the x axis of the graph. A common example of this comes from the paper "Graphical Approaches to the Analysis of
Spark lines, made popular by Edward Tufte, provide a way to visualize trends in a concise space, often inline with the rest of the narrative or data. Previously, I posted an article on Spark Plots in which I created different plot types, some of which included multiple graphs and data in each row. For such
When I need to graph a function of two variables, I often choose to use a contour plot. A surface plot is probably easier for many people to understand, but it has several disadvantages when compared to a contour plot. For example, the following statements in SAS/IML Studio displays a
The Swiss army knife is known for its versatility, with a variety of tools and blades to help you complete the task at hand. When you are creating graphics, you sometimes have a special feature you want to add, but you can't seem to find the right syntax "tool" to
Statistical graphs often include display of derived statistics along with the raw data. Often these statistics are presented in a tabular format inside the graph. With SGPLOT procedure, a table of statistics can be added to the graph as an inset table, as shown below. Using a Stat Table: SGPLOT code:
ODS Graphics components like GTL and SG procedures are designed to work with Styles to create graphs that are effective in the delivery of information and aesthetically pleasing out of the box. You no longer have to tweak the colors to ensure a nice graph. The graph derives all the
If you are like many SAS Enterprise Guide users, you've amassed a large collection of project files (EGP files) that contain important content: programs, logs, notes, results, and more. However, to most tools and processes, the EGP file is opaque. That is, you can't see what's inside of it unless
A graph in a recent article in Fortune magazine caught my eye. The graph shows the cost of hosting the Summer Olympics over the past eight events. Here is what I termed the "Medal" graph. Now, practitioners of the art of Effective Graphics would likely find some shortcomings in the graph. Clearly
PharmaSUG 2012 conference drew to a close today, concluding two and a half days packed with papers, presentations, posters, hands-on demos and super demos by SAS staff. While the weather outside was a bit chilly from time to time, the conference what hopping with many user papers on how to
I've been a fan of statistical simulation and other kinds of computer experimentation for many years. For me, simulation is a good way to understand how the world of statistics works, and to formulate and test conjectures. Last week, while investigating the efficiency of the power method for finding dominant
When I was at SAS Global Forum last week, a SAS user asked my advice regarding a SAS/IML program that he wrote. One step of the program was taking too long to run and he wondered if I could suggest a way to speed it up. The long-running step was
Recently I posted an article on this blog on how to create bar charts with log response axes in response to a question by a user. This generated some feedback suggesting that bar charts should not be used with log response axes or with a baseline of anything other than
Getting the axis values just right generally requires some work, and the values you want can change from case to case. One such example was discussed by Dan Heath in his post on custom axis values. Here Dan shows the usage of non uniform axis values using the VALUES option on
Creating bar charts with log response axis has come up a few times in the past few days. Before we look into how we could do this, it would be worth pointing out the considerable opinion in the blogosphere against use of log response axes for bar charts. See BizIntelGuru and
On Friday before the conference, I presented a 1 day "developer led" seminar on SG Procedures and GTL, along with a discussion of new features for SAS 9.3. The experience was very gratifying as all users were now using SAS 9.2, and some were using SAS 9.3. We had a lively
Recently, a user asked about creating a Bar Chart of Value by Date, where the dates are displayed on a scaled interval axis. Consider this simulated data set of value by date and treatment shown below. This data set only has one value for each date and treatment combination. We can use the VBAR statement
Last week I discussed how to fit a Poisson distribution to data. The technique, which involves using the GENMOD procedure, produces a table of some goodness-of-fit statistics, but I find it useful to also produce a graph that indicates the goodness of fit. For continuous distributions, the quantile-quantile (Q-Q) plot
A recent article in the SAS and R blog was about current winter temperatures in Albany, NY. The temperature data for the recent winter (Dec 2011 - Mar 2012) was plotted on a polar graph. Robert Allison posted an article on displaying the same data as a Polar Graph using SAS/GRAPH . Here is his
The birthday matching problem is a classic problem in probability theory. The part of it that people tend to remember is that in a room of 23 people, there is greater than 50% chance that two people in the room share a birthday. But the birthday matching problem is also