[R] Character type and size using spatstats

Patrick Connolly p_connolly at slingshot.co.nz
Thu May 15 09:27:32 CEST 2014


On Thu, 15-May-2014 at 03:00PM +1200, Rolf Turner wrote:

|> 
|> Dear Patrick,
|> 
|> (a) Your attachment did not come through; only attachments with
|> extensions belonging to a limited class are passed through by the
|> list software.

I should have made use of dput() twice instead.  However, it can be
got at https://db.tt/ic5YDzpN


|> 
|> Perhaps you could email your data set to me privately,
|> 
|> (b) I have only had a quick glance at your code.  A few comments:
|> 
|>     * In your first call to ppp(), "range(ColN), range(Row)" will be
|>       ignored.  They would be used to construct a (rectangular) window
|>       except for the fact that you have specified "window" explicitly.
|> 
|>     * the argument "maxsize" gets used only if the marks involved are
|>       *numeric*; it'll be ignored when the marks are a factor.
|> 
|>     * the argument "chars" should take values which would be acceptable
|>       as values of the "pch" argument to plot().  The levels of
|>       "Concept" do not meet this requirement.

But the elements of bb9$Pch do meet that requirement and that approach
still fails.  Something else is missing.  The use of "chars" appears
only once in that PDF file, so I didn't have enough to work it out for
myself.

|> 
|>     * if I were me I wouldn't clutter things up by plotting the density
|>       estimate initially.  Just plot the pattern, until you get the
|>       sort of result you want. *Then* overlay it on top of a density
|>       plot.
|> 
|> (c) If you send me the data off-list and explain in words what it
|> is that you want to achieve ("Tell me what you want to do not how
|> you want to do it.") then I'm pretty sure that I can show you how
|> to achieve it.

A picture is worth a thousand words.  I think when you see what the
example code produces, it will be clear what I wish to achieve.  I'm
sure it's something very simple but evidently too subtle for Pooh (who
is a bear with only a small brain).

Thanks for the help, Rolf.

best
Patrick 


|> 
|> cheers,
|> 
|> Rolf
|> 
|> On 15/05/14 14:25, p_connolly wrote:
|> >The spatstat package has hundreds of useful functions but I'm having
|> >trouble understanding the intricate ways it does things.  I've read lots of
|> >Rspatialcourse_CMIS_PDF Standard.pdf from here:
|> >http://www.csiro.au/resources/pf16h but can't find what I need to know. I'm
|> >particularly interested in how to set the plotting character and its
|> >size in density plots.
|> >
|> >
|> >   require(spatstat)
|> >   load("CharacterSizeRData") # (attached to this message)
|> >   ls()
|> >[1] "all.win" "bb9"
|> >   head(bb9)
|> >    Col Row     ColN Concept Pch VinesJune VinesAug New Event
|> >1    A  10 3.333333 Gold 4x   4        42       41   1  TRUE
|> >8    A  16 3.333333 Gold 4x   4        42       41   1  TRUE
|> >10   A  18 3.333333 Gold 4x   4        42       41   1  TRUE
|> >11   A  19 3.333333 Gold 4x   4        42       41   1  TRUE
|> >14   A  21 3.333333 Gold 4x   4        42       41   1  TRUE
|> >18   A  24 3.333333 Gold 4x   4        42       34   8  TRUE
|> >>
|> >## If I make a ppp class object from bb9, like so:
|> >   ppp9A <- with(bb9, ppp(ColN, Row, range(ColN), range(Row), window =
|> >all.win,
|> >                         marks = Concept))
|> >## I can do a density plot:
|> >   plot(density(ppp9A, 5, edge = FALSE, weights = bb9$New), main = "ppp9A")
|> >## Adding to show the points:
|> >   plot(ppp9A,  add = TRUE, cols = "red", maxsize = max(bb9$New)/20)
|> >## works except that maxsize is ignored.
|> >##
|> >## If I make the ppp object like this:
|> >   ppp9B <- with(bb9, ppp(ColN, Row, range(ColN), range(Row), window =
|> >all.win,
|> >                          marks = New))
|> >   plot(density(ppp9B, 5, edge = FALSE, weights = bb9$New), main = "ppp9B")
|> >   plot(ppp9B,  add = TRUE, cols = "red", maxsize = max(bb9$New)/20)
|> >## maxsize works how I intended.
|> >##
|> >## I tried to combine plotting character and size with a fancier use of
|> >marks
|> >   ppp9C <- with(bb9, ppp(ColN, Row, range(ColN), range(Row), window =
|> >all.win,
|> >                          marks = data.frame(New, Concept)))
|> >## Then try
|> >   plot(density(ppp9C, 5, edge = FALSE, weights = marks(ppp9C)$New),
|> >main = "")
|> >   plot(ppp9C, add = TRUE, cols = "red", chars =
|> >levels(marks(ppp9C)$Concept),
|> >        maxsize = max(marks(ppp9C)$New)/20)
|> >## chars is ignored and no error message to complain or explain
|> >
|> >What I wish to know is how to get plotting character and size
|> >information displayed simultaneously.  I tried ways of specifying it
|> >from bb9 dataframe instead of the ppp object, or specifying a fixed
|> >value but it's always ignored.  Ideally, I'd like to customize the
|> >plotting characters used, but getting the defaults to work would be a
|> >start.

-- 
~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.   
   ___    Patrick Connolly   
 {~._.~}                   Great minds discuss ideas    
 _( Y )_  	         Average minds discuss events 
(:_~*~_:)                  Small minds discuss people  
 (_)-(_)  	                      ..... Eleanor Roosevelt
	  
~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.



More information about the R-help mailing list