Thank you very much for the code, that helped me a lot to organise my
variograms objects!
Now what I am trying to get is a plot with all 100 variograms overlapping,
to show the spread due to simulations from a distribution. Is this possible
with the xyplot function?

Thank you very much!

Laura



2009/12/4 Paul Hiemstra <p.hiems...@geo.uu.nl>

> Paul Hiemstra wrote:
>
>> Laura Poggio wrote:
>>
>>> Dear all,
>>> I would like to plot 100 variograms on the same plot, possibly using a
>>> loop.
>>>
>>> At the moment I am using autofitVariogram in the package Automap to fit
>>> the
>>> variograms automatically.
>>> I found some code calling the lattice package (
>>> http://tolstoy.newcastle.edu.au/R/e7/help/09/06/0940.html), but it is
>>> giving
>>> some problems for high numbers of variograms.
>>>
>>> Thank you very much in advance!
>>>
>>> Laura
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-sig-Geo mailing list
>>> R-sig-Geo@stat.math.ethz.ch
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>
>> Hi Laura,
>>
>> The trick is to organize your data, an example using the meuse dataset:
>>
>> library(lattice)
>>
> ...and ofcourse you need to do:
>
> library(automap)
>
>
>> # Make a dataset with 100 fitted variogram models
>> # Don't know how you've organized your 100 models,
>> # But I put them in a list.
>> data(meuse)
>> coordinates(meuse) =~ x+y
>> av_list = lapply(1:100, function(x) autofitVariogram(zinc~1, meuse))
>>
>> # Now extract the sample variograms, add an extra
>> # identification column to them and rbind them together
>> sv_list = do.call("rbind", lapply(1:length(av_list), function(x) {
>> sv = av_list[[x]]$exp_var
>> sv$identification = as.character(x)
>> return(sv)
>> }))
>>
>> # Make a list of fitted models
>> model_list = lapply(av_list, function(x) x$var_model)
>>
>> # Make the plot, notice the formula part!
>> # I use panel.number(), the current panel number,
>> # to extract the appropriate variogram model
>> xyplot(gamma ~ dist | identification, sv_list,
>> panel = function(...) {
>> panel.xyplot(...) # points of the sample var
>> ret = variogramLine(model_list[[panel.number()]], maxdist =
>> max(sv_list$dist))
>> llines(ret$dist, ret$gamma, col = "red")
>> })
>>
>> cheers,
>> Paul
>>
>>
>
> --
> Drs. Paul Hiemstra
> Department of Physical Geography
> Faculty of Geosciences
> University of Utrecht
> Heidelberglaan 2
> P.O. Box 80.115
> 3508 TC Utrecht
> Phone:  +3130 274 3113 Mon-Tue
> Phone:  +3130 253 5773 Wed-Fri
> http://intamap.geo.uu.nl/~paul <http://intamap.geo.uu.nl/%7Epaul>
>
>

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to