Thanks a lot to Demitris for a prompt answer some minutes ago on another tread (see below). To avoid excess mails on the list, I move onto next question: I have another small plotting problem that confuses me. I want to plot results from a field trial series, using the numbers of the trials as symbols in the plot. pch = as.character(trial_no) works fine, but truncates the trial number to the first digit. As I have sixteen trials in the series I get into problems.... How do I squeeze in two positions as a symbol in a plot? All the best /CG On Thu, November 9, 2006 9:30 am, Dimitris Rizopoulos said:> try the following: > > x <- runif(100, -4, 4) > y <- 1 + 2 * x + rnorm(100, sd = 2) > fit <- lm(y ~ x) > > plot(x, y) > abline(fit) > legend("topleft", expression(paste(R[adj]^2, " = 0.66"))) > > ## or > > plot(x, y) > abline(fit) > legend("topleft", legend = substitute(R[adj]^2 == x, > list(x = summary(fit)$adj.r.squared))) > > > I hope it helps. > > Best, > Dimitris > > ---- > Dimitris Rizopoulos > Ph.D. Student > Biostatistical Centre > School of Public Health > Catholic University of Leuven > > Address: Kapucijnenvoer 35, Leuven, Belgium > Tel: +32/(0)16/336899 > Fax: +32/(0)16/337015 > Web: http://med.kuleuven.be/biostat/ > http://www.student.kuleuven.be/~m0390867/dimitris.htm > > > ----- Original Message ----- > From: "CG Pettersson" <cg.pettersson at evp.slu.se> > To: <r-help at stat.math.ethz.ch> > Sent: Thursday, November 09, 2006 9:10 AM > Subject: [R] Why do I get a linebreak in the legend? > > >> Dear all, >> >> W2k, R2.4.0 >> >> I want to place a legend in a regression plot, stating the adjusted >> R-square value. After some struggle with the coding I am nearly >> there, but >> only nearly. The best try so far is: >> >> legend("topleft", expression(paste(R[adj]^2), " = 0.66")) >> >> This places the proper information in the legend, but I get a >> linebreak >> before the "= 0.66" and I want the expression on one single line. >> All >> adjustments from this code I have tried so far either produces only >> half >> the expression or produces an error message. >> >> All the best and sorry for a trivial quastion >> /CG >> >> >> -- >> CG Pettersson, MSci, PhD Stud. >> Swedish University of Agricultural Sciences (SLU) >> Dep. of Crop Production Ekology. Box 7043. >> SE-750 07 Uppsala, Sweden >> cg.pettersson at vpe.slu.se >> >> ______________________________________________ >> R-help at stat.math.ethz.ch 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. >> > > > Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm >-- CG Pettersson, MSci, PhD Stud. Swedish University of Agricultural Sciences (SLU) Dep. of Crop Production Ekology. Box 7043. SE-750 07 Uppsala, Sweden cg.pettersson at vpe.slu.se
try this: y <- rnorm(16) plot(y, type = "n") text(1:16, y, 1:16) Best, Dimitris ----- Original Message ----- From: "CG Pettersson" <cg.pettersson at evp.slu.se> To: "Dimitris Rizopoulos" <dimitris.rizopoulos at med.kuleuven.be> Cc: "CG Pettersson" <cg.pettersson at evp.slu.se>; <r-help at stat.math.ethz.ch> Sent: Thursday, November 09, 2006 10:09 AM Subject: Plotting symbols with two positions?> Thanks a lot to Demitris for a prompt answer some minutes ago on > another > tread (see below). To avoid excess mails on the list, I move onto > next > question: > > I have another small plotting problem that confuses me. I want to > plot > results from a field trial series, using the numbers of the trials > as > symbols in the plot. > > pch = as.character(trial_no) > > works fine, but truncates the trial number to the first digit. As I > have > sixteen trials in the series I get into problems.... > > How do I squeeze in two positions as a symbol in a plot? > > All the best > /CG > > > On Thu, November 9, 2006 9:30 am, Dimitris Rizopoulos said: >> try the following: >> >> x <- runif(100, -4, 4) >> y <- 1 + 2 * x + rnorm(100, sd = 2) >> fit <- lm(y ~ x) >> >> plot(x, y) >> abline(fit) >> legend("topleft", expression(paste(R[adj]^2, " = 0.66"))) >> >> ## or >> >> plot(x, y) >> abline(fit) >> legend("topleft", legend = substitute(R[adj]^2 == x, >> list(x = summary(fit)$adj.r.squared))) >> >> >> I hope it helps. >> >> Best, >> Dimitris >> >> ---- >> Dimitris Rizopoulos >> Ph.D. Student >> Biostatistical Centre >> School of Public Health >> Catholic University of Leuven >> >> Address: Kapucijnenvoer 35, Leuven, Belgium >> Tel: +32/(0)16/336899 >> Fax: +32/(0)16/337015 >> Web: http://med.kuleuven.be/biostat/ >> http://www.student.kuleuven.be/~m0390867/dimitris.htm >> >> >> ----- Original Message ----- >> From: "CG Pettersson" <cg.pettersson at evp.slu.se> >> To: <r-help at stat.math.ethz.ch> >> Sent: Thursday, November 09, 2006 9:10 AM >> Subject: [R] Why do I get a linebreak in the legend? >> >> >>> Dear all, >>> >>> W2k, R2.4.0 >>> >>> I want to place a legend in a regression plot, stating the >>> adjusted >>> R-square value. After some struggle with the coding I am nearly >>> there, but >>> only nearly. The best try so far is: >>> >>> legend("topleft", expression(paste(R[adj]^2), " = 0.66")) >>> >>> This places the proper information in the legend, but I get a >>> linebreak >>> before the "= 0.66" and I want the expression on one single line. >>> All >>> adjustments from this code I have tried so far either produces >>> only >>> half >>> the expression or produces an error message. >>> >>> All the best and sorry for a trivial quastion >>> /CG >>> >>> >>> -- >>> CG Pettersson, MSci, PhD Stud. >>> Swedish University of Agricultural Sciences (SLU) >>> Dep. of Crop Production Ekology. Box 7043. >>> SE-750 07 Uppsala, Sweden >>> cg.pettersson at vpe.slu.se >>> >>> ______________________________________________ >>> R-help at stat.math.ethz.ch 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. >>> >> >> >> Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm >> > > > -- > CG Pettersson, MSci, PhD Stud. > Swedish University of Agricultural Sciences (SLU) > Dep. of Crop Production Ekology. Box 7043. > SE-750 07 Uppsala, Sweden > cg.pettersson at vpe.slu.se >Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
On 09-Nov-06 CG Pettersson wrote:> Thanks a lot to Demitris for a prompt answer some minutes ago > on another tread (see below). To avoid excess mails on the list, > I move onto next question: > > I have another small plotting problem that confuses me. I want > to plot results from a field trial series, using the numbers of > the trials as symbols in the plot. > > pch = as.character(trial_no) > > works fine, but truncates the trial number to the first digit. > As I have sixteen trials in the series I get into problems.... > > How do I squeeze in two positions as a symbol in a plot?Probably text() will do what you want, though there may be other functions with more resources for such tasks. Best wishes, Ted. -------------------------------------------------------------------- E-Mail: (Ted Harding) <Ted.Harding at nessie.mcc.ac.uk> Fax-to-email: +44 (0)870 094 0861 Date: 09-Nov-06 Time: 09:36:46 ------------------------------ XFMail ------------------------------
Aside from the answers to use text you could use letters instead of numbers which would allow you to continue to use a single character and might have advantages in terms of saving space on the chart: pch = letters[trial_no] pch = c(letters, LETTERS)[trial_no] pch = c(1:9, letters, LETTERS)[trial_no] On 11/9/06, CG Pettersson <cg.pettersson at evp.slu.se> wrote:> Thanks a lot to Demitris for a prompt answer some minutes ago on another > tread (see below). To avoid excess mails on the list, I move onto next > question: > > I have another small plotting problem that confuses me. I want to plot > results from a field trial series, using the numbers of the trials as > symbols in the plot. > > pch = as.character(trial_no) > > works fine, but truncates the trial number to the first digit. As I have > sixteen trials in the series I get into problems.... > > How do I squeeze in two positions as a symbol in a plot? > > All the best > /CG > > > On Thu, November 9, 2006 9:30 am, Dimitris Rizopoulos said: > > try the following: > > > > x <- runif(100, -4, 4) > > y <- 1 + 2 * x + rnorm(100, sd = 2) > > fit <- lm(y ~ x) > > > > plot(x, y) > > abline(fit) > > legend("topleft", expression(paste(R[adj]^2, " = 0.66"))) > > > > ## or > > > > plot(x, y) > > abline(fit) > > legend("topleft", legend = substitute(R[adj]^2 == x, > > list(x = summary(fit)$adj.r.squared))) > > > > > > I hope it helps. > > > > Best, > > Dimitris > > > > ---- > > Dimitris Rizopoulos > > Ph.D. Student > > Biostatistical Centre > > School of Public Health > > Catholic University of Leuven > > > > Address: Kapucijnenvoer 35, Leuven, Belgium > > Tel: +32/(0)16/336899 > > Fax: +32/(0)16/337015 > > Web: http://med.kuleuven.be/biostat/ > > http://www.student.kuleuven.be/~m0390867/dimitris.htm > > > > > > ----- Original Message ----- > > From: "CG Pettersson" <cg.pettersson at evp.slu.se> > > To: <r-help at stat.math.ethz.ch> > > Sent: Thursday, November 09, 2006 9:10 AM > > Subject: [R] Why do I get a linebreak in the legend? > > > > > >> Dear all, > >> > >> W2k, R2.4.0 > >> > >> I want to place a legend in a regression plot, stating the adjusted > >> R-square value. After some struggle with the coding I am nearly > >> there, but > >> only nearly. The best try so far is: > >> > >> legend("topleft", expression(paste(R[adj]^2), " = 0.66")) > >> > >> This places the proper information in the legend, but I get a > >> linebreak > >> before the "= 0.66" and I want the expression on one single line. > >> All > >> adjustments from this code I have tried so far either produces only > >> half > >> the expression or produces an error message. > >> > >> All the best and sorry for a trivial quastion > >> /CG > >> > >> > >> -- > >> CG Pettersson, MSci, PhD Stud. > >> Swedish University of Agricultural Sciences (SLU) > >> Dep. of Crop Production Ekology. Box 7043. > >> SE-750 07 Uppsala, Sweden > >> cg.pettersson at vpe.slu.se > >> > >> ______________________________________________ > >> R-help at stat.math.ethz.ch 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. > >> > > > > > > Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm > > > > > -- > CG Pettersson, MSci, PhD Stud. > Swedish University of Agricultural Sciences (SLU) > Dep. of Crop Production Ekology. Box 7043. > SE-750 07 Uppsala, Sweden > cg.pettersson at vpe.slu.se > > ______________________________________________ > R-help at stat.math.ethz.ch 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. >
Dear Dimitris, Thanks a lot, but I didn't really manage to apply it in my context, I first got an error message and then an ugly plot. I have also got the advice from Gabor Grothendieck to use letters instead of numbers, but I do prefer numbers as this is the normal way of referring to the individual trials. This is what I did, (and failed with):> attach(DAT.nr) > plot(jd.s,jd.h, type = "no")Warning message: plot type 'no' will be truncated to first character in: plot.xy(xy, type, pch, lty, col, bg, cex, lwd, ...) This was not very hopeful, but as an empty frame was produced in the same time, I took a risk with this:> text(jd.s, jd.h, pch=as.character(DAT.nr$t_no))Which, to my surprise, produced a plot. The problem with it was _not_ that the numbers were truncated into the first (as could be expected) but that it seems like the line number, and not the trial number, were used. Not very nice as they number up to 576 and have 36 levels for each trial...... If I instead use the last expression, but as a "plot":> plot(jd.s, jd.h, pch=as.character(DAT.nr$t_no))I am back where I begun with the correct numbers, but only the first position of it. What is happening? All the best /CG On Thu, November 9, 2006 10:19 am, Dimitris Rizopoulos said:> try this: > > y <- rnorm(16) > > plot(y, type = "n") > text(1:16, y, 1:16) > > > Best, > Dimitris > > > > > ----- Original Message ----- > From: "CG Pettersson" <cg.pettersson at evp.slu.se> > To: "Dimitris Rizopoulos" <dimitris.rizopoulos at med.kuleuven.be> > Cc: "CG Pettersson" <cg.pettersson at evp.slu.se>; > <r-help at stat.math.ethz.ch> > Sent: Thursday, November 09, 2006 10:09 AM > Subject: Plotting symbols with two positions? > > >> Thanks a lot to Demitris for a prompt answer some minutes ago on >> another >> tread (see below). To avoid excess mails on the list, I move onto >> next >> question: >> >> I have another small plotting problem that confuses me. I want to >> plot >> results from a field trial series, using the numbers of the trials >> as >> symbols in the plot. >> >> pch = as.character(trial_no) >> >> works fine, but truncates the trial number to the first digit. As I >> have >> sixteen trials in the series I get into problems.... >> >> How do I squeeze in two positions as a symbol in a plot? >> >> All the best >> /CG >> >> >> On Thu, November 9, 2006 9:30 am, Dimitris Rizopoulos said: >>> try the following: >>> >>> x <- runif(100, -4, 4) >>> y <- 1 + 2 * x + rnorm(100, sd = 2) >>> fit <- lm(y ~ x) >>> >>> plot(x, y) >>> abline(fit) >>> legend("topleft", expression(paste(R[adj]^2, " = 0.66"))) >>> >>> ## or >>> >>> plot(x, y) >>> abline(fit) >>> legend("topleft", legend = substitute(R[adj]^2 == x, >>> list(x = summary(fit)$adj.r.squared))) >>> >>> >>> I hope it helps. >>> >>> Best, >>> Dimitris >>> >>> ---- >>> Dimitris Rizopoulos >>> Ph.D. Student >>> Biostatistical Centre >>> School of Public Health >>> Catholic University of Leuven >>> >>> Address: Kapucijnenvoer 35, Leuven, Belgium >>> Tel: +32/(0)16/336899 >>> Fax: +32/(0)16/337015 >>> Web: http://med.kuleuven.be/biostat/ >>> http://www.student.kuleuven.be/~m0390867/dimitris.htm >>> >>> >>> ----- Original Message ----- >>> From: "CG Pettersson" <cg.pettersson at evp.slu.se> >>> To: <r-help at stat.math.ethz.ch> >>> Sent: Thursday, November 09, 2006 9:10 AM >>> Subject: [R] Why do I get a linebreak in the legend? >>> >>> >>>> Dear all, >>>> >>>> W2k, R2.4.0 >>>> >>>> I want to place a legend in a regression plot, stating the >>>> adjusted >>>> R-square value. After some struggle with the coding I am nearly >>>> there, but >>>> only nearly. The best try so far is: >>>> >>>> legend("topleft", expression(paste(R[adj]^2), " = 0.66")) >>>> >>>> This places the proper information in the legend, but I get a >>>> linebreak >>>> before the "= 0.66" and I want the expression on one single line. >>>> All >>>> adjustments from this code I have tried so far either produces >>>> only >>>> half >>>> the expression or produces an error message. >>>> >>>> All the best and sorry for a trivial quastion >>>> /CG >>>> >>>> >>>> -- >>>> CG Pettersson, MSci, PhD Stud. >>>> Swedish University of Agricultural Sciences (SLU) >>>> Dep. of Crop Production Ekology. Box 7043. >>>> SE-750 07 Uppsala, Sweden >>>> cg.pettersson at vpe.slu.se >>>> >>>> ______________________________________________ >>>> R-help at stat.math.ethz.ch 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. >>>> >>> >>> >>> Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm >>> >> >> >> -- >> CG Pettersson, MSci, PhD Stud. >> Swedish University of Agricultural Sciences (SLU) >> Dep. of Crop Production Ekology. Box 7043. >> SE-750 07 Uppsala, Sweden >> cg.pettersson at vpe.slu.se >> > > > Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm >-- CG Pettersson, MSci, PhD Stud. Swedish University of Agricultural Sciences (SLU) Dep. of Crop Production Ekology. Box 7043. SE-750 07 Uppsala, Sweden cg.pettersson at vpe.slu.se