[R] xyplot with lowess curves
Sundar Dorai-Raj
sdorairaj at gmail.com
Mon Feb 2 21:46:33 CET 2009
Does this do what you want? The "panel" argument has the custom pane
function I referred to before.
Col <- c("red", "green", "blue", "purple")
xyplot (
SnowLineElevation ~ Year | Model,
data = d,
panel = function(x, y, col, ...) {
Col <- Col[panel.number()]
panel.xyplot(x, y, col = "blue", ...)
panel.loess(x, y, col = Col)
},
ylim = c(0,100),
type = c('p','smooth'),
col = 'blue',
pch = 21,
xlab = 'Year',
ylab = 'Snowline Elevation [m]'
)
On Mon, Feb 2, 2009 at 12:18 PM, Hutchinson,David [PYR]
<David.Hutchinson at ec.gc.ca> wrote:
> I haven't had much luck with a custom panel function; mainly because I
> don't truly understand how to embedd the functionality into the xyplot
> command.
>
> Here's a reproducible example if you can help out.
>
> Thanks,
> Dave
>
> library (lattice)
>
> d <- NULL
> models <- c('A','B','C','D')
> n = 100
> for (i in seq(along = models)){
> d <- rbind(
> d, data.frame (
> Model = models[i],
> Year = seq(1960, length.out=n, by = 1),
> SnowLineElevation = runif(n, 0, 100)
> )
> )
> }
>
> xyplot (
> SnowLineElevation ~ Year | Model,
> data = d,
> ylim = c(0,100),
> type = c('p','smooth'),
> col = 'blue',
> pch = 21,
> xlab = 'Year',
> ylab = 'Snowline Elevation [m]'
> )
>
> -----Original Message-----
> From: Sundar Dorai-Raj [mailto:sdorairaj at gmail.com]
> Sent: Monday, February 02, 2009 11:43 AM
> To: Hutchinson,David [PYR]
> Cc: r-help at r-project.org
> Subject: Re: [R] xyplot with lowess curves
>
> You'll need a custom panel function. It would also help if you provided
> a reproducible example:
>
> xyplot (
> SnowLineElevation ~ Year | Model,
> data = data,
> panel = function(x, y, col, ...) {
> col <- ifelse(panel.number() == 1, "red", "green")
> panel.xyplot(x, y, col = "blue", ...)
> panel.loess(x, y, col = col)
> },
> ylim = c(0,1800),
> pch = 21,
> xlab = 'Year',
> ylab = 'Snowline Elevation [m]'
> )
>
> Alternatively, you can use the group argument in conjunction with the
> panels:
>
> xyplot(SnowLineElevation ~ Year | Model, data, groups = Model, type =
> c("p", "smooth"))
>
> if you want the points and the lines to be the same color.
>
> --sundar
>
> On Mon, Feb 2, 2009 at 10:20 AM, Hutchinson,David [PYR]
> <David.Hutchinson at ec.gc.ca> wrote:
>> I am trying to change the attributes of the lowess lines fit to an
>> xyplot command, but have been unsuccessful in my search of the online
>> help. Right now, both the points and lowess line come out in the same
>> color (blue). I am unsure how I can change the properties of the
>> lowess line separately.
>>
>> xyplot (
>> SnowLineElevation ~ Year | Model,
>> data = data,
>> ylim = c(0,1800),
>> type = c('p','smooth'),
>> col = 'blue',
>> pch = 21,
>> xlab = 'Year',
>> ylab = 'Snowline Elevation [m]'
>> )
>>
>> Any help would be much appreciated,
>>
>> Dave
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at 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.
>>
>
More information about the R-help
mailing list