add single points to a level plot

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

add single points to a level plot

lily li
Hi all,

I'm trying to add single points with known coordinates to a level plot, but
could not find the proper answer. I got to know that layer() function is
good for this, but I don't know which package is related to this function.
The source is here:
https://stackoverflow.com/questions/28597149/add-xy-points-to-raster-map-generated-by-levelplot

but my question is a little different as I know the coordinates of the
single point, rather than a range. Thanks for any help you could provide.

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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 | Threaded
Open this post in threaded view
|

Re: add single points to a level plot

lily li
Hi all,

I ran the code:
> s <- stack(replicate(2, raster(matrix(runif(100), 10))))
> xy <- data.frame(coordinates(sampleRandom(s, 10, sp=TRUE)),
+                  z1=runif(10), z2=runif(10))
> levelplot(s, margin=FALSE, at=seq(0, 1, 0.05)) +
+   layer(sp.points(xy, pch=ifelse(pts$z1 < 0.5, 2, 3), cex=2, col=1),
columns=1) +
+   layer(sp.points(xy, pch=ifelse(pts$z2 < 0.5, 2, 3), cex=2, col=1),
columns=2)

And got the error:
Error in UseMethod("levelplot") :
  no applicable method for 'levelplot' applied to an object of class
"c('RasterStack', 'Raster', 'RasterStackBrick', 'BasicRaster')"

what is the problem? Thanks.

On Thu, Mar 8, 2018 at 12:07 AM, lily li <[hidden email]> wrote:

> Hi all,
>
> I'm trying to add single points with known coordinates to a level plot,
> but could not find the proper answer. I got to know that layer() function
> is good for this, but I don't know which package is related to this
> function. The source is here:
> https://stackoverflow.com/questions/28597149/add-xy-points-to-raster-map-
> generated-by-levelplot
>
> but my question is a little different as I know the coordinates of the
> single point, rather than a range. Thanks for any help you could provide.
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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 | Threaded
Open this post in threaded view
|

Re: add single points to a level plot

Eric Berger
You need to load the package 'rasterVis'

> library(rasterVis)

HTH,
Eric


On Thu, Mar 8, 2018 at 5:11 PM, lily li <[hidden email]> wrote:

> Hi all,
>
> I ran the code:
> > s <- stack(replicate(2, raster(matrix(runif(100), 10))))
> > xy <- data.frame(coordinates(sampleRandom(s, 10, sp=TRUE)),
> +                  z1=runif(10), z2=runif(10))
> > levelplot(s, margin=FALSE, at=seq(0, 1, 0.05)) +
> +   layer(sp.points(xy, pch=ifelse(pts$z1 < 0.5, 2, 3), cex=2, col=1),
> columns=1) +
> +   layer(sp.points(xy, pch=ifelse(pts$z2 < 0.5, 2, 3), cex=2, col=1),
> columns=2)
>
> And got the error:
> Error in UseMethod("levelplot") :
>   no applicable method for 'levelplot' applied to an object of class
> "c('RasterStack', 'Raster', 'RasterStackBrick', 'BasicRaster')"
>
> what is the problem? Thanks.
>
> On Thu, Mar 8, 2018 at 12:07 AM, lily li <[hidden email]> wrote:
>
> > Hi all,
> >
> > I'm trying to add single points with known coordinates to a level plot,
> > but could not find the proper answer. I got to know that layer() function
> > is good for this, but I don't know which package is related to this
> > function. The source is here:
> > https://stackoverflow.com/questions/28597149/add-xy-
> points-to-raster-map-
> > generated-by-levelplot
> >
> > but my question is a little different as I know the coordinates of the
> > single point, rather than a range. Thanks for any help you could provide.
> >
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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 | Threaded
Open this post in threaded view
|

Re: add single points to a level plot

Jeff Newmiller
In reply to this post by lily li
library(sos)
findFn( "layer" )
findFn( "levelplot" )

Also, experts in spatial analysis tend to answer questions on the special mailing list where the Posting Guide says they should. Read it to find out where that is.
--
Sent from my phone. Please excuse my brevity.

On March 8, 2018 7:11:34 AM PST, lily li <[hidden email]> wrote:

>Hi all,
>
>I ran the code:
>> s <- stack(replicate(2, raster(matrix(runif(100), 10))))
>> xy <- data.frame(coordinates(sampleRandom(s, 10, sp=TRUE)),
>+                  z1=runif(10), z2=runif(10))
>> levelplot(s, margin=FALSE, at=seq(0, 1, 0.05)) +
>+   layer(sp.points(xy, pch=ifelse(pts$z1 < 0.5, 2, 3), cex=2, col=1),
>columns=1) +
>+   layer(sp.points(xy, pch=ifelse(pts$z2 < 0.5, 2, 3), cex=2, col=1),
>columns=2)
>
>And got the error:
>Error in UseMethod("levelplot") :
>  no applicable method for 'levelplot' applied to an object of class
>"c('RasterStack', 'Raster', 'RasterStackBrick', 'BasicRaster')"
>
>what is the problem? Thanks.
>
>On Thu, Mar 8, 2018 at 12:07 AM, lily li <[hidden email]> wrote:
>
>> Hi all,
>>
>> I'm trying to add single points with known coordinates to a level
>plot,
>> but could not find the proper answer. I got to know that layer()
>function
>> is good for this, but I don't know which package is related to this
>> function. The source is here:
>>
>https://stackoverflow.com/questions/28597149/add-xy-points-to-raster-map-
>> generated-by-levelplot
>>
>> but my question is a little different as I know the coordinates of
>the
>> single point, rather than a range. Thanks for any help you could
>provide.
>>
>
> [[alternative HTML version deleted]]
>
>______________________________________________
>[hidden email] mailing list -- To UNSUBSCRIBE and more, see
>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.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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 | Threaded
Open this post in threaded view
|

Re: add single points to a level plot

lily li
In reply to this post by Eric Berger
Thanks.
Now it can run and generate plots, but there are the two lines on each of
the plots. I don't know the problem for this?

Error using packet 1
any(sp) is not TRUE



On Thu, Mar 8, 2018 at 8:48 AM, Eric Berger <[hidden email]> wrote:

> You need to load the package 'rasterVis'
>
> > library(rasterVis)
>
> HTH,
> Eric
>
>
> On Thu, Mar 8, 2018 at 5:11 PM, lily li <[hidden email]> wrote:
>
>> Hi all,
>>
>> I ran the code:
>> > s <- stack(replicate(2, raster(matrix(runif(100), 10))))
>> > xy <- data.frame(coordinates(sampleRandom(s, 10, sp=TRUE)),
>> +                  z1=runif(10), z2=runif(10))
>> > levelplot(s, margin=FALSE, at=seq(0, 1, 0.05)) +
>> +   layer(sp.points(xy, pch=ifelse(pts$z1 < 0.5, 2, 3), cex=2, col=1),
>> columns=1) +
>> +   layer(sp.points(xy, pch=ifelse(pts$z2 < 0.5, 2, 3), cex=2, col=1),
>> columns=2)
>>
>> And got the error:
>> Error in UseMethod("levelplot") :
>>   no applicable method for 'levelplot' applied to an object of class
>> "c('RasterStack', 'Raster', 'RasterStackBrick', 'BasicRaster')"
>>
>> what is the problem? Thanks.
>>
>> On Thu, Mar 8, 2018 at 12:07 AM, lily li <[hidden email]> wrote:
>>
>> > Hi all,
>> >
>> > I'm trying to add single points with known coordinates to a level plot,
>> > but could not find the proper answer. I got to know that layer()
>> function
>> > is good for this, but I don't know which package is related to this
>> > function. The source is here:
>> > https://stackoverflow.com/questions/28597149/add-xy-points-
>> to-raster-map-
>> > generated-by-levelplot
>> >
>> > but my question is a little different as I know the coordinates of the
>> > single point, rather than a range. Thanks for any help you could
>> provide.
>> >
>>
>>         [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posti
>> ng-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
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.