开发者

Dot Plot in R using R Plotting

开发者 https://www.devze.com 2023-04-04 16:30 出处:网络
What is the best way to generate a dotplot with two factors like this, preferably usin开发者_如何学JAVAg standard R plots (not ggplot) and from a 2x2 data frame.The horizontal lines should be means.I

What is the best way to generate a dotplot with two factors like this, preferably usin开发者_如何学JAVAg standard R plots (not ggplot) and from a 2x2 data frame. The horizontal lines should be means. I have tried cleveland dot charts, but cannot figure out how to get two data series' and have the dots jittered:

Dot Plot in R using R Plotting


The following piece of code should do the trick:

set.seed(1)
t1 = rnorm(10); t2 = rnorm(10, 2)
t1_g2 = rnorm(10, 4);t2_g2 = rnorm(10)

##Don't print the axes labels
par(ann=FALSE)

##Plot first set of data.
##Need to check for sensible ranges
##Use the jitter function to spread data out.
plot(jitter(rep(0,10),amount=0.2), t1,
     xlim=range(-0.5,3.5), ylim=range(-3,8),
     axes=FALSE,frame.plot=TRUE)
points(jitter(rep(1,10), amount=0.2), t1_g2, col=2)
points(jitter(rep(2,10), amount=0.2), t2)
points(jitter(rep(3,10), amount=0.2), t2_g2, col=2)

##Add in the y-axis
axis(2, seq(-4,8,by=2))

##Add in the x-axis labels
mtext("Treatment 1", side = 1, at=0.5)
mtext("Treatment 2", side = 1, at=2.5)

##Add in the means
segments(-0.25, mean(t1), 0.25, mean(t1))
segments(0.75, mean(t1_g2), 1.25, mean(t1_g2))
segments(1.75, mean(t2), 2.25, mean(t2))
segments(2.75, mean(t2_g2), 3.25, mean(t2_g2))

##Add in the legend
legend(0, 8, c("Group 1", "Group 2"), col=1:2, pch=1)

which gives:

Dot Plot in R using R Plotting

0

精彩评论

暂无评论...
验证码 换一张
取 消