values A and B have different ranges. Therefore you would want horizontal error bars for the B mean. The dispersion function doesn't do horizontal error bars, so you can use plotCI also in plotrix. Here is an example with two databases:
DF2<-read.table(text="A B C 62 22 54 69 24 55 51 28 56 47 25 53 70 21 52 61 23 50 40 19 51 58 18 57 38 24 58 37 27 53",header=TRUE) plot(DF1$A,DF1$B,xlim=range(c(DF1$A,DF2$A)), ylim=range(c(DF1$B,DF2$B)),pch=19,col="red") meanA<-mean(DF1$A) meanB<-mean(DF1$B) points(meanA,meanB,pch=18,col="red") q1090<-quantile(DF1$B,probs=c(0.1,0.9)) plotCI(meanA,meanB,ui=q1090[2],li=q1090[1],err="x", add=TRUE,col="red") points(DF2$A,DF2$B,pch=19,col="green") meanA<-mean(DF2$A) meanB<-mean(DF2$B) points(meanA,meanB,pch=18,col="green") q1090<-quantile(DF2$B,probs=c(0.1,0.9)) plotCI(meanA,meanB,ui=q1090[2],li=q1090[1],err="x", add=TRUE,col="red") # click at the upper left corner of the legend legend(locator(1),legend=c("DF1","DF2"),pch=19, col=c("red","green")) Jim On Thu, Jul 13, 2017 at 1:32 PM, lily li <chocol...@gmail.com> wrote: > Thanks, Jim. The code works, but I don't understand why you use q1090 <- > quantile(DF1$B, probs=c()), rather than DF1$A? Also, how to add a legend for > both points DF1 and DF2? > > On Wed, Jul 12, 2017 at 8:25 PM, Jim Lemon <drjimle...@gmail.com> wrote: >> >> Hi lily, >> Here is the first plot: >> >> plot(DF1$A,DF1$B,pch=19,col="red") >> meanA<-mean(DF1$A) >> meanB<-mean(DF1$B) >> points(meanA,meanB,pch=18,col="red") >> q1090<-quantile(DF1$B,probs=c(0.1,0.9)) >> library(plotrix) >> dispersion(meanA,meanB,q1090[2],q1090[1], >> intervals=FALSE,col="red") >> >> The same code will work for a second data frame, except that you would >> use "points" instead of "plot" and change the color. You may also have >> to specify xlim and ylim in the first call to "plot" so that all >> values are on the plot. >> >> Jim >> >> >> >> On Thu, Jul 13, 2017 at 11:46 AM, lily li <chocol...@gmail.com> wrote: >> > Hi R users, >> > >> > I have a question about plotting. There is the dataframe below, while >> > each >> > row represents a record. If I want to plot on a A-B plot, i.e., x-axis >> > represents A, while y-axis represents B values. However, I want to plot >> > the >> > mean value from records 1-10 as one point, while the 10th and 90th >> > percentiles represent the error bars, such as one point in the attached >> > example. I don't know how to do this, and then add a legend. >> > After the above step, if I have a dataframe DF2 with the same structure >> > but >> > different values than DF1, how to show the point on the same figure, but >> > use different colors or symbols? Thanks for any advices. >> > >> > DF1 >> > >> > A B C >> > 1 65 21 54 >> > 2 66 23 55 >> > 3 54 24 56 >> > 4 44 23 53 >> > 5 67 22 52 >> > 6 66 21 50 >> > 7 45 20 51 >> > 8 56 19 57 >> > 9 40 25 58 >> > 10 39 24 53 >> > >> > ______________________________________________ >> > R-help@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. > > ______________________________________________ R-help@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.