[R] lattice : superpose symbols with a great many points
Christoph Scherber
cscherb1 at gwdg.de
Mon Jun 23 00:19:20 CEST 2014
Dear Laurent,
Why not use "type="l""?
xyplot(value ~ time,
data=data.sim,
nr=100,
groups=essai,type="l",auto.key=list(columns=5))
You could also use more/better colours using RColorBrewer and/or
ColorRamp...
Cheers
Christoph
Am 22.06.2014 23:09, schrieb Laurent Rhelp:
> Le 20/06/2014 21:50, Christoph Scherber a écrit :
>> Dear Laurent
>>
>> for numeric x variables, you could try jitter:
>>
>> xyplot(y~jitter(x,0.5))
>>
>> Cheers
>> Christoph
>>
>>
>> Am 20.06.2014 21:45, schrieb Laurent Rhelp:
>>> Hi,
>>>
>>> I like to use with xyplot (package lattice) the groups argument
>>> and superpose.symbol to compare several curves. But, when there are
>>> a great many points, the symbols are very close and the graph
>>> becomes unreadable. Would there be an argument or a tip not to draw
>>> all the symbols, for example the symbols could be drawn only every x
>>> points, x given as an argument ?
>>>
>>> Thanks
>>> Best regards
>>> Laurent
>>>
>>>
>>>
>>> ---
>>> Ce courrier électronique ne contient aucun virus ou logiciel
>>> malveillant parce que la protection avast! Antivirus est active.
>>>
>>> ______________________________________________
>>> 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.
>>
>> ______________________________________________
>> 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.
>>
> It is a very good idea !!! The symbols become readable but it is not
> an actual answer to the issue.
>
> I finally wrote the code below which works but I think there is
> certainly something easier (shorter) !!!
>
> Thanks
>
> --o<----------------------------------------------------------------------------------------->o----
>
> ##
> ## 1. mock data
> ##
> n <- 10000
> time <- seq(-10*pi,10*pi,length=n)
> essai <- c("essai1","essai2","essai3","essai4","essai5")
>
> ll <- list()
> for( i in 1:5){
> ll[[i]] <-data.frame(time=time,
> value=sin(time+(pi/i)),
> essai=essai[i])
> }
> data.sim <- do.call("rbind",ll)
> ##
> ## 2. lattice initialisation for the colors and the symbols
> ##
> para.liste <- trellis.par.get()
> superpose.symbol <- para.liste$superpose.symbol
> superpose.symbol$pch <- seq(1,5)
> superpose.symbol$col <- seq(1,5)
> ##
> ## 3. lattice code
> ##
> xyplot(value ~ time,
> data=data.sim,
> nr=100,
> groups=essai,
>
> panel = function(x,y,subscripts,groups,nr,...) {
> panel.abline(v=0, lty = "dotted", col = "black")
> groupsnames <- levels(groups)
> ng <- length(groupsnames)
> for( i in 1:ng){
> g <- groupsnames[i]
> idg <- g == groups[subscripts]
> superpose.symbol <-
> trellis.par.get("superpose.symbol")
> ncol <- superpose.symbol$col[i]
> npch <- superpose.symbol$pch[i]
>
> ## we draw only the line
> panel.xyplot(x[idg],y[idg],type="l",col=ncol,...)
>
> ## and then we draw a symbol every nr points
> idx <- seq(1,length(x[idg]),by=nr)
> idy <- seq(1,length(y[idg]),by=nr)
> panel.points(x[idg][idx],y[idg][idy],col=ncol,pch=npch)
> }
> },
> par.settings = list(
> superpose.symbol=superpose.symbol
> )
> )
>
> --o<--------------------------------------------------------------------------------------->o----
>
>
>
>
>
>
>
>
> ---
> Ce courrier électronique ne contient aucun virus ou logiciel
> malveillant parce que la protection avast! Antivirus est active.
>
> ______________________________________________
> 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