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 wa!
 s 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. 

Tom Mulholland




-----Original Message-----
From: Paul Murrell [mailto:[EMAIL PROTECTED]
Sent: Tuesday, 23 November 2004 3:05 AM
To: Mulholland, Tom
Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Monday, 22 November 2004 1:21 PM
> To: [EMAIL PROTECTED]
> 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:[EMAIL PROTECTED] 
> 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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Monday, 22 November 2004 10:07 AM
> To: [EMAIL PROTECTED]
> 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: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> 
> 
> ==========================
> 
>  
> 
> 
>       [[alternative HTML version deleted]]
> 
> ______________________________________________
> [EMAIL PROTECTED] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
> 
> ______________________________________________
> [EMAIL PROTECTED] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> 
> ______________________________________________
> [EMAIL PROTECTED] 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
[EMAIL PROTECTED]
http://www.stat.auckland.ac.nz/~paul/

______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to