Simply calculate it before.... it's not hard:

ylim = range(sapply(datalist, function(x) range(x$dataset$Utilization)))

should work, but it's untested.  Then pass that to plot().

If your data set is large enough that you want to do a single loop,
simply create a list of the density objects and get the bounds
appropriately after that.

Michael

On Thu, Mar 22, 2012 at 1:10 PM, Alaios <ala...@yahoo.com> wrote:
> Hmm.. this how my code looks like inside my function
>
> plot(density(100*datalist[[1]]$dataset$Utilization), xlab="Overall 
> utilization [ % ]", main="", ...)
>     colorList=colors()[seq(10,100,10)]
>     colorList[1]="black"
>     if (length(datalist) > 1) {
>         for (i in 2:length(datalist)) {
>             lines(density(100*datalist[[i]]$dataset$Utilization), lty=i, col= 
> colorList[i])
>         }
>     }
>
> given on input a datalist the code above just by reading element by element 
> of the list adds the corresponding line(..)
>
> I fail to see how I can calculate the min and max and then call the first 
> plot with the right lim.
>
> Could you please help me?
> Regards
> Alex
>
>
>
> ________________________________
>  From: Jim Lemon <j...@bitwrit.com.au>
>
> Cc: R help <R-help@r-project.org>
> Sent: Thursday, March 22, 2012 8:13 AM
> Subject: Re: [R] Automaticall adjust axis scales
>
> On 03/22/2012 05:42 AM, Alaios wrote:
>> Would it be possible to change the axis at the end?
>> My data sets seem to be quite large so I was thinking for the plot and
>> the consequent lines to keep always
>> the current minimum and maximum like
>> plot(x)
>> minimum=min(x)
>> lines(x1)
>> minimum=c(minimum,x1)
>> lines(x2)
>> minimum=c(minimum,x2)
>> then if there is a good way for altering axis lines I could put the
>> limits I want to.
>
> Hi Alex,
> One way or another you are going to have to set the limits in your first call 
> to "plot". You could do the plot first and collect the limits along the way, 
> then do it again, but I can't see that this has any advantage over 
> calculating the limits for the entire set of data that is to be plotted at 
> the beginning and then doing the plots. If you want to get the limits for 
> each data set separately, maybe:
>
> range1<-range(x1)
> range2<-range(x2)
> range3<-range(x3)
> ylim<-range(c(range1,range2,range3))
>
> However, I suspect that this is of more use in helping you understand what is 
> happening than actually getting it done.
>
> Jim
>        [[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-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.

Reply via email to