Re: [R] generic argument passing to plot function

2011-09-29 Thread Jean V Adams
statquant2 wrote on 09/28/2011 10:01:30 AM:
> 
> Hello I am trying to write a function that would plot timeseries 
easily...
> I aim at plotting two time-series on 2 different y axis sharing the same
> x-axis
> 
> I succeded in doing so: 
> plotTimeSerie(x,y,y2,[a lot of other args]){
> ...
> plot()
> axis.POSIXct(side=1) #here I build the x-axis 
> points() #here I plot the first time serie related to y-axis
> ...
> axis(side=2,[some args])
> text(side=2,text="",[some args]) #here I build the y-left axis and 
annotate
> with text
> ...
> points() #here I plot the first time serie related to y-right axis
> axis(side=4,[some args])
> text(side=2,text="",[some args]) #here I build the y-right axis and 
annotate
> with text
> 
> }
> 
> My problem is that I would like the user to be able to specify any
> parameters he wishes for the axis/points functions.
> How can I make plotTimeSerie handling any parameters and pass them into 
the
> specified functions (points,axis...)?


You'll have to create argument names that specify which function they are 
to be passed to.  For example:

myplot <- function(x, y, pt.col="black", ax1.col="black", ax2.col="black") 
{
plot(x, y, type="n", axes=F)
points(x, y, col=pt.col)
axis(1, col=ax1.col)
axis(2, col=ax2.col)
}
myplot(1:10, 1:10, pt.col="red", ax1.col="blue", ax2.col="orange")

If there was one function that you thought would need the most 
specifications, you could use ellipses (...) to allow for inclusion of any 
arguments.  For example:

myplot <- function(x, y, ax1.col="black", ax2.col="black", ...) {
plot(x, y, type="n", axes=F)
points(x, y, ...)
axis(1, col=ax1.col)
axis(2, col=ax2.col)
}
myplot(1:10, 1:10, ax1.col="blue", ax2.col="orange", pch=16, col="red", 
cex=3)

Jean
[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list
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.


[R] generic argument passing to plot function

2011-09-28 Thread statquant2
Hello I am trying to write a function that would plot timeseries easily...
I aim at plotting two time-series on 2 different y axis sharing the same
x-axis

I succeded in doing so: 
plotTimeSerie(x,y,y2,[a lot of other args]){
...
plot()
axis.POSIXct(side=1) #here I build the x-axis 
points() #here I plot the first time serie related to y-axis
...
axis(side=2,[some args])
text(side=2,text="",[some args]) #here I build the y-left axis and annotate
with text
...
points() #here I plot the first time serie related to y-right axis
axis(side=4,[some args])
text(side=2,text="",[some args]) #here I build the y-right axis and annotate
with text

}

My problem is that I would like the user to be able to specify any
parameters he wishes for the axis/points functions.
How can I make plotTimeSerie handling any parameters and pass them into the
specified functions (points,axis...)?

--
View this message in context: 
http://r.789695.n4.nabble.com/generic-argument-passing-to-plot-function-tp3851599p3851599.html
Sent from the R help mailing list archive at Nabble.com.

__
R-help@r-project.org mailing list
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.