[R] Help needed with Waterfall plot

Gabor Grothendieck ggrothendieck at gmail.com
Sat Nov 1 15:58:26 CET 2008

On Sat, Nov 1, 2008 at 10:32 AM, hadley wickham <h.wickham at gmail.com> wrote:
> On Fri, Oct 31, 2008 at 11:25 AM, Philip Twumasi-Ankrah
> <nana_kwadwo_derkyi at yahoo.com> wrote:
>> Hi friends,
>> I need suggestions/directions on how to producing a waterfall plot for present extend of change in tumour size for a set of respondents in a study.  Example of use of waterfall plot is in the following slides presented at ASCO 2007 by Axel Grothey. Link is
>> http://media.asco.org/player/default.aspx?LectureID=AG265&conferenceFolder=GI2007&SessionFolder=Poster&slideonly=yes&TrackID=N929&LectureTitle=Waterfall%20plots%20provide%20detailed%20information%20on%20magnitude%20of%20response%20to%20conventional%20chemotherapy%20in%20colorectal%20cancer%3a%20Lessons%20learned%20from%20N9741.&Key=vm_45_3_26_265&SpeakerName=%3b%20Presenter%3a%20Axel%20Grothey%2c%20MD&mediaURL=%2fmedia&ServerName=media.asco.org&max=12&ext=jpg&useASX=false&playtype=&playtype=&playtype=,
>> The link is pretty long but it takes you right to the presentation.
> Is this really an effective means of describing the distribution of
> percent change in tumour size?  Wouldn't a histogram display the
> distribution more effectively?

The waterfall does have the advantage of displaying the raw data whereas
a histogram involves summarization.  If you meant displaying the raw
data using histogram style then that would not be as pretty but does show
the individual raw data points more distinctly.

My prior post can be adapted to that by replacing the barplot
line with plot(..., type = "h").  (Also used a better scheme for the
gray shades and corrected the legend.)

# random data
growth <- sort(runif(215, -100, 100), decreasing = TRUE)

col <- factor(1 + (growth < -25) + (growth < 25), lab = gray(1:3/5))
plot(growth, type = "h", col = levels(col)[col], ylab = "% Growth",
       main = "Random Data", xlab = "", ylim = c(-100, 100))
legend("topright", legend = c("> 25%", "25% > . > -25%", "< -25%"),
       cex = 0.8, bty = "n", fill = levels(col))

More information about the R-help mailing list