On Apr 18, 2012, at 7:52 PM, Dmitriy Lyubimov wrote:
Sorry. i forgot the lines with parameters for my multivariate normal
simulation. here's the code for data simulation i used:
=======================
sigm1 <- diag(c(30,50))
sigm2 <- diag(c(5,3))
mu1 <- c(10,15)
mu2 <- c(80,60)
sample <- round(rbind(rmvnorm(100,mu1,sigm1),rmvnorm(100,mu2,sigm2))
sample <- sample[! (sample[,1] <1 | sample[,2] <1 | sample[,1]> 100 |
sample[,2]>100),]
d <- as.data.frame(sample)
names(d)<-c("x","y")
========================
On Wed, Apr 18, 2012 at 4:46 PM, Dmitriy Lyubimov <dlieu.
7...@gmail.com> wrote:
Thanks David.
let's say sample data (two-modal multivariate normal simulation,
needs
mvtnorm package)
=========================
library(mvtnorm)
sample <- round(rbind(rmvnorm(100,mu1,sigm1),rmvnorm(100,mu2,sigm2)))
sample <- sample[! (sample[,1] <1 | sample[,2] <1 | sample[,1]> 100 |
sample[,2]>100),]
d <- as.data.frame(sample)
names(d)<-c("x","y")
=============
Now suppose we want to create ggplot2 density with this in a
specified range
===============
library(ggplot2)
ggplot(d,aes(x,y)) +
xlim(0,100)+ylim(0,100)+
stat_density2d(bins=4)
===============
in my setup (which I believe is latest) i see incomplete contours of
the area limited by the range of the data. same is true if i switch
from contours to tile "heatmap" method in the help.
The code is:
dens <- safe.call(kde2d, c(df, n = n, ...))
df <- with(dens, data.frame(expand.grid(x = x, y = y), z =
as.vector(z)))
The plot area gets (artificially) expanded to larger values. But it
appears that the processing of "x" and "y" results in trimming to the
range of the data despite efforts o extend it. Perhaps you should
email Hadley?
Issue #2. if we can pass kde2d parameters to stat_density2d, as my
documentation seems to imply, specifying bandwidths doesn't seem to
make any difference:
+++++++++++++++
ggplot(d,aes(x,y)) +
xlim(0,100)+ylim(0,100)+
stat_density2d(bins=4,
h=c(10,10))
I don't know about 'h', but the 'bins' parameter seems to be
effective when changed from 4 to 20.
+++++++++++++++
Thanks.
-dmitriy
On Wed, Apr 18, 2012 at 4:31 PM, David Winsemius <dwinsem...@comcast.net
> wrote:
On Apr 18, 2012, at 6:55 PM, Dmitriy Lyubimov wrote:
Hello,
I'd be very grateful for help with some ggplot2's stat_density2d
issues.
First issue is with data limits. xlim() and ylim() doesn't seem to
work; instead, estimates (and plotting) seems to be constrained to
range(x), range(y) no matter what i do. The documentation says i
can
pass in kde2d's parameters to ... but pussing kde2d's "lims"
parameter
achieves nothing. Contrary to the installed package help, the
ggplot2
site reference says that "..." parameters are ignored. So does it
or
does it not use kde2d? it seems not, but if not, how do i set the
limit?
second question was about bandwidth. I want to override that
(ideally,
similar to "adjust" parameter to stat::density but in case of
kde2d,
"h" parameter would do as well). However, putting h=... doesn't
seem
to have any effect, as as i mentioned before, it doesn't seem that
stat_density2d uses kde2d contrary to its doc.
Could please somebody clarify what stat the ggplot2::
stat_density2d
is using now and how do i adjust bandwidth and limits in the
current
version?
https://github.com/hadley/ggplot2/blob/master/R/stat-density-2d.r
(You might consider reading the Posting Guide. I am not pursuing
further
because I do not think it is our responsibility to construct test
situations.)
--
David Winsemius, MD
West Hartford, CT
David Winsemius, MD
West Hartford, CT
______________________________________________
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.