Bernard North
2014-Mar-05 13:44 UTC
[R] histograms embedded in a plot (as alternative to jitter)
Dear R list,
I am plotting a discrete valued number on the y axis against a continuous
variable on the x axis.
To allow sample size to be viewed for the discrete groups I am using vertical
jitter.
So my code is along the lines of
y<-rpois(500,2)
x<-rnorm(500,y,1)
plot(x,jitter(y))
It has not been suggested that a more informative view of the sample size might
be if a histogram could be inserted into the plot (instead of the jittered rows
of points) for the values at each y-value
Many thanks if anyone can think of a way to do this
This email may contain information that is privileged, confidential or otherwise
protected from disclosure.
It must not be used by, or its contents copied or disclosed to, persons other
than the addressee.
If you have received this email in error please notify the sender immediately
and delete the email.
This message has been scanned for viruses.\ \ \ [[alter...{{dropped:6}}
David Carlson
2014-Mar-05 19:56 UTC
[R] histograms embedded in a plot (as alternative to jitter)
Not histograms, but here are two alternatives. The first gives
you kernel density plots for each value and the second uses
violin plots. Both plot points if there are fewer than 5.
set.seed(42)
y<-rpois(500,2)
x<-rnorm(500,y,1)
plot(x,y, type="n")
for (i in seq(min(y), max(y), by=1)) {
if (length(x[y==i])<5) {
points(x[y==i], rep(i, length(x[y==i])))
} else {
a <- density(x[y==i])
polygon(a$x, a$y+i, col="gray")
}
}
require(vioplot)
plot(x,y, type="n")
for (i in seq(min(y), max(y), by=1)) {
if (length(x[y==i])<5) {
points(x[y==i], rep(i, length(x[y==i])))
} else {
vioplot(x[y==i], horizontal=TRUE, add=TRUE, at=i,
col="gray")
}
}
-------------------------------------
David L Carlson
Department of Anthropology
Texas A&M University
College Station, TX 77840-4352
-----Original Message-----
From: r-help-bounces at r-project.org
[mailto:r-help-bounces at r-project.org] On Behalf Of Bernard North
Sent: Wednesday, March 5, 2014 7:44 AM
To: r-help at r-project.org
Subject: [R] histograms embedded in a plot (as alternative to
jitter)
Dear R list,
I am plotting a discrete valued number on the y axis against a
continuous variable on the x axis.
To allow sample size to be viewed for the discrete groups I am
using vertical jitter.
So my code is along the lines of
y<-rpois(500,2)
x<-rnorm(500,y,1)
plot(x,jitter(y))
It has not been suggested that a more informative view of the
sample size might be if a histogram could be inserted into the
plot (instead of the jittered rows of points) for the values at
each y-value
Many thanks if anyone can think of a way to do this
This email may contain information that is privileged,
confidential or otherwise protected from disclosure.
It must not be used by, or its contents copied or disclosed to,
persons other than the addressee.
If you have received this email in error please notify the
sender immediately and delete the email.
______________________________________________
R-help at 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.
Jim Lemon
2014-Mar-05 22:58 UTC
[R] histograms embedded in a plot (as alternative to jitter)
On 03/06/2014 12:44 AM, Bernard North wrote:> Dear R list, > > I am plotting a discrete valued number on the y axis against a continuous variable on the x axis. > To allow sample size to be viewed for the discrete groups I am using vertical jitter. > So my code is along the lines of > y<-rpois(500,2) > x<-rnorm(500,y,1) > plot(x,jitter(y)) > > It has not been suggested that a more informative view of the sample size might be if a histogram could be inserted into the plot (instead of the jittered rows of points) for the values at each y-value > Many thanks if anyone can think of a way to do this >Hi Bernard, You can use the subplot function in the TeachingDemos package to do things like this. Jim