[R] How to correct this

Paul Murrell p.murrell at auckland.ac.nz
Tue Nov 23 21:05:21 CET 2004


Hi


Mulholland, Tom wrote:
 > This raises the question of "best practice." My answer was predicated
 > on the fact that Jin Li had been attempting to use grid.circle in the
 > first place without success. I rashly made the assumption that there
 > was already a move to try and use some of the more sophisticated
 > techniques within R.
 >
 > This is a good example of the comments in the "hidden costs" thread,
 > where the pathways to learning R came under some scrutiny. It is also
 > similar to the "[R] How to insert one element into a vector?" where
 > it is noted that append can be used to insert the element. That is
 > the function appears to be originally written for one purpose, but it
 > is evident that it has a broader application that is not immediately
 > recognizable from the function name. When you are new to R it can
 > seem confusing that you use rect for rectangles but symbols for
 > circles, or segments for lines and lines for not lines, but they
 > really are lines.
 >
 > I am not yet proficient enough to always know which is the best
 > approach. That's even with defining best as quickest, most easily
 > maintained or most readable etc etc.
 >
 > Now to the point. I have formed a collection of graphics that I have
 > prepared over the last two years which I use to remind myself of the
 > little idiosyncrasies of the various techniques. These of course have
 > evolved as I have. They mostly use data that I cannot make available.
 > I thought it might be a good idea to produce reproducible code that
 > shows the bewildering variety ways to skin the proverbial animal.
 > That is to produce code that can create a PDF flipbook of plots. One
 > of the first things that I do when I load a package, is to run the
 > examples that produce graphical output. I tend to work backwards and
 > understand processes better when I know what the final output looks
 > like. I am mathematically challenged, but can often appreciate what
 > is happening once I see the plot. Ideally the code would include all
 > the bells and whistles. I say this because I have spent hours trying
 > to figure out just exactly what something is supposed to do before
 > finally figuring out that it was really much simpler than I had
 > thought. The bells and whistles should also show how you sometimes
 > have to use par outside of the function (or remember that the ... is
 > there for a reason) to get the effect that you want. For example when
 > I load the vcd package to do mosaicplots I think I have to use
 > par(xpd = TRUE) to get my multi-line labels not to be clipped.
 >
 > As an evolving beast I see this as a way of demonstrating the
 > techniques that are generally regarded as being "best practice" in a
 > comprehensive manner.
 >
 > In short I am volunteering. What for? I am not quite sure, but it
 > includes example plots using data that helps in clarifying how the
 > plot should be used. The last point means that I am not capable of
 > producing some plots (and the examples in some packages already do
 > this well) as I have no idea what they mean even when I have plotted
 > the example.


What this sounds like to me is an "R graphics cookbook", which I think 
would be a good idea, though have you looked at, for example, the 
"Graphiques avec R" section of Vincent Zoonekynd's "Statistiques avec R"
(http://zoonek2.free.fr/UNIX/48_R/all.html)
or the "Graphing" section of Paul Johnson's "R tips" page 
(http://www.ku.edu/~pauljohn/R/Rtips.html)?

Paul


 > -----Original Message----- From: Paul Murrell
 > [mailto:p.murrell at auckland.ac.nz] Sent: Tuesday, 23 November 2004
 > 3:05 AM To: Mulholland, Tom Cc: Jin.Li at csiro.au;
 > r-help at stat.math.ethz.ch Subject: Re: [R] How to correct this
 >
 >
 > Hi
 >
 >
 > Mulholland, Tom wrote:
 >
 >> Taking note of the first post, this is what I assume you wish. Note
 >> Paul's caveat in the help file
 >>
 >> "If you resize the device, all bets are off!"
 >>
 >> require(gridBase) x<-seq(0,1,0.2) y<-x pred<-matrix(c(0.5, 0.5,
 >> 0.5, 0.5, 0.5, 0.5, 0.5, 0.7, 0.7, 0.7, 0.7, 0.5, 0.5, 0.7, 0.9,
 >> 0.9, 0.7, 0.5, 0.5, 0.7, 0.9, 0.9, 0.7, 0.5, 0.5, 0.7, 0.7, 0.7,
 >> 0.7, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5), 6, 6) image(x, y, pred,
 >> col = gray(20:100/100), asp='s', axes=F, xlab=" ", ylab="")
 >> points(0.5, 0.5, col = 5) # the centre of the image
 >
 >
 >
 > In this case, using grid (or gridBase) is probably overkill.  The
 > symbols() function should do what you want.  For example, ...
 >
 > symbols(rep(0.5, 4), rep(0.5, 4), circles=1:4, add=TRUE)
 >
 > Paul
 >
 >
 >
 >> vps <- baseViewports() pushViewport(vps$plot) grid.circle(x=0.5,
 >> y=0.5, r=0.1, draw=TRUE,  gp=gpar(col=5)) grid.circle(x=0.5, y=0.5,
 >> r=0.3, draw=TRUE, gp=gpar(col=5)) grid.circle(x=0.5, y=0.5, r=0.5,
 >> draw=TRUE, gp=gpar(col=5))
 >>
 >>
 >>
 >> -----Original Message----- From: Jin.Li at csiro.au
 >> [mailto:Jin.Li at csiro.au] Sent: Monday, 22 November 2004 1:21 PM To:
 >> r-help at stat.math.ethz.ch Subject: RE: [R] How to correct this
 >>
 >>
 >> Hi there,
 >>
 >> I would like to add a few circles to the following image:
 >> x<-seq(0,1,0.2) y<-x pred<-matrix(c(0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
 >> 0.5, 0.7, 0.7, 0.7, 0.7, 0.5, 0.5, 0.7, 0.9, 0.9, 0.7, 0.5, 0.5,
 >> 0.7, 0.9, 0.9, 0.7, 0.5, 0.5, 0.7, 0.7, 0.7, 0.7, 0.5, 0.5, 0.5,
 >> 0.5, 0.5, 0.5, 0.5), 6, 6) image(x, y, pred, col =
 >> gray(20:100/100), asp='s', axes=F, xlab=" ", ylab="") points(0.5,
 >> 0.5, col = 5) # the centre of the image
 >>
 >> The centre of these circles needs to be overlapped with the centre
 >> of the image. Any helps are greatly appreciated. Regards, Jin
 >>
 >>
 >> -----Original Message----- From: Mulholland, Tom
 >> [mailto:Tom.Mulholland at dpi.wa.gov.au] Sent: Monday, 22 November
 >> 2004 12:29 P To: Li, Jin (CSE, Atherton) Subject: RE: [R] How to
 >> correct this
 >>
 >> I think you need to create a complete set of code that can be
 >> replicated by anyone trying to help. I ran the three grid.circle
 >> commands on my current plot and it did what I expected it to do. It
 >> plotted three circles centred in the current viewport. See the
 >> jpeg.
 >>
 >> The last command using points makes me think that you need to
 >> understand about units and the setting up of viewports. I have not
 >> played around with this much but I think thr newsletter had an
 >> article which may be of use (although it uses old code I think the
 >> differences are minor)
 >>
 >> Ciao, Tom
 >>
 >> -----Original Message----- From: Jin.Li at csiro.au
 >> [mailto:Jin.Li at csiro.au] Sent: Monday, 22 November 2004 10:07 AM
 >> To: r-help at stat.math.ethz.ch Subject: [R] How to correct this
 >>
 >>
 >> Hi there,
 >>
 >>
 >>
 >> I tried to add a few circles on an existing figure using the
 >> following codes
 >>
 >>
 >>
 >> grid.circle(x=0.5, y=0.5, r=0.1, draw=TRUE,  gp=gpar(col=5))
 >>
 >> grid.circle(x=0.5, y=0.5, r=0.3, draw=TRUE, gp=gpar(col=5))
 >>
 >> grid.circle(x=0.5, y=0.5, r=0.5, draw=TRUE, gp=gpar(col=5))
 >>
 >> points(0.5, 0.5, col = 5) # centre of the circle
 >>
 >>
 >>
 >> , but all circles moved away from the centre.  Could we do any
 >> corrections to this? Thanks.
 >>
 >>
 >>
 >> Regards,
 >>
 >>
 >>
 >> Jin
 >>
 >> ==========================
 >>
 >> Jin Li, PhD
 >>
 >> Climate Impacts Modeller
 >>
 >> CSIRO Sustainable Ecosystems
 >>
 >> Atherton, QLD 4883
 >>
 >> Australia
 >>
 >> Ph: 61 7 4091 8802
 >>
 >> Email: jin.li at csiro.au <mailto:jin.li at csiro.au>
 >>
 >> ==========================
 >>
 >>
 >>
 >>
 >> [[alternative HTML version deleted]]
 >>
 >> ______________________________________________
 >> R-help at stat.math.ethz.ch mailing list
 >> https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the
 >> posting guide! http://www.R-project.org/posting-guide.html
 >>
 >> ______________________________________________
 >> R-help at stat.math.ethz.ch mailing list
 >> https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the
 >> posting guide! http://www.R-project.org/posting-guide.html
 >>
 >> ______________________________________________
 >> R-help at stat.math.ethz.ch mailing list
 >> https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the
 >> posting guide! http://www.R-project.org/posting-guide.html
 >
 >
 >


-- 
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
Auckland
New Zealand
64 9 3737599 x85392
paul at stat.auckland.ac.nz
http://www.stat.auckland.ac.nz/~paul/




More information about the R-help mailing list