[R] example of geom_contour() with function argument

Big Floppy Dog bigfloppydog at gmail.com
Mon Oct 9 18:52:09 CEST 2017


Hi,

This is not a HW problem, sadly: I was last in a classroom 30 years ago,
and can no longer run off to the instructor :-(

I apologize but I cut and paste the wrong snippet earlier and made a typo
in doing so, but the result is the same with the more appropriate  snippet.

require(mvtnorm)
require(ggplot2)
set.seed(1234)
xx <- data.frame(rmvt(100, df = c(13, 13)))

v <- ggplot(data = xx, aes(x = X1, y = X2, z = dmvt, df = c(13,13)))
v + geom_contour()

Don't know how to automatically pick scale for object of type function.
Defaulting to continuous.
Error: Aesthetics must be either length 1 or the same as the data (100): x,
y, z, df

I do not understand how to put in a function as an argument to
geom_contour() and the examples in the help fileor in the link that Ulrik
sent are not very helpful to me. Hence, I was asking for some examples that
might be helpful.

I guess the answer is to make a second dataset that is regular and make the
function estimate that, but how do I combine this?

TIA.
BFD


On Mon, Oct 9, 2017 at 11:32 AM, David Winsemius <dwinsemius at comcast.net>
wrote:

>
> > On Oct 9, 2017, at 6:03 AM, Big Floppy Dog <bigfloppydog at gmail.com>
> wrote:
> >
> > Hello Ulrik,
> >
> > I apologize, but I can not see how to provide a pdf in place of the
> density
> > function which calculates a KDE (that is, something from the dataset in
> the
> > example). Can you please point to the specific example that might help?
> >
> > Here is what I get:
> >
> > require(mvtnorm)
> > require(ggplot2)
> > set.seed(1234)
> > xx <- data.frame(rmvt(100, df = c(13, 13)))
> >
> >
> > v <- ggplot(faithfuld, aes(waiting, eruptions, z = drmvt, df = c(13,13)))
> > v + geom_contour()
> >
> > Don't know how to automatically pick scale for object of type function.
> > Defaulting to continuous.
> > Error: Aesthetics must be either length 1 or the same as the data (5625):
> > x, y, z, df
> >
>
> That's not what I get:
>
> > v <- ggplot(faithfuld, aes(waiting, eruptions, z = drmvt, df = c(13,13)))
> > v + geom_contour()
> Error in FUN(X[[i]], ...) : object 'drmvt' not found
> >
> > ? faithfuld
> > str(faithfuld)
> Classes ‘tbl_df’, ‘tbl’ and 'data.frame':       5625 obs. of  3 variables:
>  $ eruptions: num  1.6 1.65 1.69 1.74 1.79 ...
>  $ waiting  : num  43 43 43 43 43 43 43 43 43 43 ...
>  $ density  : num  0.00322 0.00384 0.00444 0.00498 0.00542 ...
>
> So you are apparently trying to throw together code and data that you
> don't understand. The data you are using is already a density estimate
> designed to simply be plotted. It is not the original data. Furthermore you
> are passing drmvt that is apparently not in either the mvtnorm nor the
> ggplot2 packages.
>
> You should determine where that function is and then determine how to do a
> 2d estimate on the original data. I'm guessing this is homework so not
> inclined to offer a complete solution.
>
> --
> David.
>
>
> >
> > Can you please tell me how to use this here? Or is some other example
> more
> > appropriate?
> >
> > TIA,
> > BFD
> >
> >
> >
> > On Mon, Oct 9, 2017 at 2:22 AM, Ulrik Stervbo <ulrik.stervbo at gmail.com>
> > wrote:
> >
> >> Hi BFD,
> >>
> >> ?geom_contour() *does* have helpful examples. Your Google-foo is weak:
> >> Searching for geom_contour brought me: http://ggplot2.tidyverse.
> >> org/reference/geom_contour.html as the first result.
> >>
> >> HTH
> >> Ulrik
> >>
> >> On Mon, 9 Oct 2017 at 08:04 Big Floppy Dog <bigfloppydog at gmail.com>
> wrote:
> >>
> >>> Can someone please point me to an example with geom_contour() that
> uses a
> >>> function? The help does not have an example of a function, and also  I
> did
> >>> not find anything from online searches.
> >>>
> >>> TIA,
> >>> BFD
> >>>
> >>>
> >>> ------------------------------------------------------------
> >>> -----------------------------------
> >>>
> >>> How about geom_contour()?
> >>>
> >>> Am So., 8. Okt. 2017, 20:52 schrieb Ranjan Maitra <maitra at email.com>:
> >>>
> >>>> Hi,
> >>>>
> >>>> I am no expert on ggplot2 and I do not know the answer to your
> >>> question. I
> >>>> looked around a bit but could not find an answer right away. But one
> >>>> possibility could be, if a direct approach is not possible, to draw
> >>>> ellipses corresponding to the confidence regions of the multivariate t
> >>>> density and use geom_polygon to draw this successively?
> >>>>
> >>>> I will wait for a couple of days to see if there is a better answer
> >>> posted
> >>>> and then write some code, unless you get to it first.
> >>>>
> >>>> Thanks,
> >>>> Ranjan
> >>>>
> >>>>
> >>>> On Sun, 8 Oct 2017 09:30:30 -0500 Big Floppy Dog <
> >>> bigfloppydog at gmail.com>
> >>>> wrote:
> >>>>
> >>>>> Note: I have posted this on SO also but while the question has been
> >>>>> upvoted, there has been no answer yet.
> >>>>>
> >>>>>
> >>>>
> >>> https://stackoverflow.com/questions/46622243/ggplot-
> >>> plot-2d-probability-density-function-on-top-of-points-on-ggplot
> >>>>>
> >>>>> Apologies for those who have seen it there also but I thought that
> >>> this
> >>>>> list of experts may have someone who knows the answer.
> >>>>>
> >>>>> I have the following example code:
> >>>>>
> >>>>>
> >>>>>
> >>>>> require(mvtnorm)
> >>>>> require(ggplot2)
> >>>>> set.seed(1234)
> >>>>> xx <- data.frame(rmvt(100, df = c(13, 13)))
> >>>>> ggplot(data = xx,  aes(x = X1, y= X2)) + geom_point() +
> >>> geom_density2d()
> >>>>>
> >>>>>
> >>>>>
> >>>>> It yields a scatterplot of X2 against X1 and a KDE contour plot of
> the
> >>>>> density (as it should).
> >>>>>
> >>>>> My question is: is it possible to change the contour plot to display
> >>>>> the contours
> >>>>>
> >>>>> of a two-dimensional density function (say dmvt), using ggplot2?
> >>>>>
> >>>>> The remaining figures in my document are in ggplot2 and therefore I
> >>>>> am looking for a ggplot2 solution.
> >>>>>
> >>>>> Thanks in advance!
> >>>>>
> >>>>> BFD
> >>>>>
> >>>>>      [[alternative HTML version deleted]]
> >>>>>
> >>>>> ______________________________________________
> >>>>> R-help at r-project.org 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]]
> >>>
> >>> ______________________________________________
> >>> R-help at r-project.org 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]]
> >
> > ______________________________________________
> > R-help at r-project.org 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.
>
> David Winsemius
> Alameda, CA, USA
>
> 'Any technology distinguishable from magic is insufficiently advanced.'
>  -Gehm's Corollary to Clarke's Third Law
>
>
>
>
>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list