On 05/01/2017 5:21 PM, Rolf Turner wrote:
On 06/01/17 10:31, Jim Lemon wrote:
Hi Dan,
This may help if your data is in the format below:

waffle.mat<-matrix(c(rep(NA,14),137,135,rep(NA,6),144,149,
 rep(NA,3),150,152,159,157,154,
 NA,163,164,164,161,162,165,164,rep(NA,5),179,173,173,
 rep(NA,4),182,180,185,180,
 rep(NA,6),197,190,rep(NA,8)),ncol=9)
waffle.col<-matrix("lightblue",ncol=9,nrow=8)
waffle.col[is.na(waffle.mat)]<-NA
waffle.border<-matrix("blue",ncol=9,nrow=8)
waffle.border[is.na(waffle.mat)]<-NA
library(plotrix)
# use a waffle plot
color2D.matplot(waffle.mat,cellcolors=waffle.col,border=waffle.border,
 show.values=TRUE,xat=10,yat=10,xlab="",ylab="")
axis(1,at=1:8,labels=seq(130,200,by=10))
axis(2,at=1:8)
axis.break(1)

Being picky-picky-picky I would like to point out that Duncan's and
David's functions don't *quite* reproduce the picture in the pdf file
that the OP attached, when called with the data from that picture:

egdat <- c(137,135,144,149,150,152,159,157,154,163,164,164,
            161,162,165,164,179,173,173,182,180,185,180,197,190)
myhist(egdat)
boxhist(egdat)

It's a matter of including the left or right endpoints in the bins.

Duncan's function needs to swap "<" and "<=" in the definition of "keep"
(and make a corresponding adjustment in the "|" clause, so as to look at
the last rather than the first break value).

Well, that's just because the attached picture was wrong :-).

Duncan


David's function needs to set "right=FALSE" in the call to cut().

Jim's waffle plot gets it right, at the expense of needing to have the
data organised in an inconvenient form.

All that being said, all of you blokes came up with solutions that are
far beyond my capability of producing.  Hat's off to you.

cheers,

Rolf


______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to