Hi First a simple question to do with plot(). How do I change the x-axis labels on a plot? For example, I am plotting each row of a matrix, and I want each row to be a line on my graph. Simple really. Eg: plot(sg[1,], type="l") When I do this, the x-axis is labelled 1:38, as I have 38 columns in my matrix. When I do: plot(sg[1,order(sg[1,])], type="l") Ideally I would like the x-axis labels to reflect the new order of the columns, but they're still numbered 1:38... I've read the plot() docs and the par() docs and can't figure it out - I know I'm missing something obvious, but what? Cheers Mick Michael Watson Head of Informatics Institute for Animal Health, Compton Laboratory, Compton, Newbury, Berkshire RG20 7NN UK Phone : +44 (0)1635 578411 ext. 2535 Mobile: +44 (0)7990 827831 E-mail: michael.watson at bbsrc.ac.uk
try something like plot(..., axes=FALSE) axis(2); axis(1, labels=c("your labels")) Best, Dimitris ---- Dimitris Rizopoulos Ph.D. Student Biostatistical Centre School of Public Health Catholic University of Leuven Address: Kapucijnenvoer 35, Leuven, Belgium Tel: +32/16/396887 Fax: +32/16/337015 Web: http://www.med.kuleuven.ac.be/biostat http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm ----- Original Message ----- From: "michael watson (IAH-C)" <michael.watson at bbsrc.ac.uk> To: <r-help at stat.math.ethz.ch> Sent: Tuesday, November 16, 2004 3:45 PM Subject: [R] Simple plot() question> Hi > > First a simple question to do with plot(). How do I change the > x-axis > labels on a plot? > > For example, I am plotting each row of a matrix, and I want each row > to > be a line on my graph. Simple really. Eg: > > plot(sg[1,], type="l") > > When I do this, the x-axis is labelled 1:38, as I have 38 columns in > my > matrix. When I do: > > plot(sg[1,order(sg[1,])], type="l") > > Ideally I would like the x-axis labels to reflect the new order of > the > columns, but they're still numbered 1:38... I've read the plot() > docs > and the par() docs and can't figure it out - I know I'm missing > something obvious, but what? > > Cheers > > Mick > > Michael Watson > Head of Informatics > Institute for Animal Health, > Compton Laboratory, > Compton, > Newbury, > Berkshire RG20 7NN > UK > > Phone : +44 (0)1635 578411 ext. 2535 > Mobile: +44 (0)7990 827831 > E-mail: michael.watson at bbsrc.ac.uk > > ______________________________________________ > 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 >
michael watson (IAH-C) wrote:> Hi > > First a simple question to do with plot(). How do I change the x-axis > labels on a plot? > > For example, I am plotting each row of a matrix, and I want each row to > be a line on my graph. Simple really. Eg: > > plot(sg[1,], type="l") > > When I do this, the x-axis is labelled 1:38, as I have 38 columns in my > matrix. When I do: > > plot(sg[1,order(sg[1,])], type="l") > > Ideally I would like the x-axis labels to reflect the new order of the > columns, but they're still numbered 1:38... I've read the plot() docs > and the par() docs and can't figure it out - I know I'm missing > something obvious, but what?You want to add xaxt="n" so the x-axis labels are not printed. Then add your new labels using axis(1, at=1:38, labels=<some vector of label names>) HTH, Jim> > Cheers > > Mick > > Michael Watson > Head of Informatics > Institute for Animal Health, > Compton Laboratory, > Compton, > Newbury, > Berkshire RG20 7NN > UK > > Phone : +44 (0)1635 578411 ext. 2535 > Mobile: +44 (0)7990 827831 > E-mail: michael.watson at bbsrc.ac.uk > > ______________________________________________ > 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-- James W. MacDonald Affymetrix and cDNA Microarray Core University of Michigan Cancer Center 1500 E. Medical Center Drive 7410 CCGC Ann Arbor MI 48109
Hi Mick: I'm a little unsure if this is what you are after but does this do it? foo.mat <- matrix(rnorm(100), nrow = 10, ncol = 10) plot(foo.mat[1,], type="l", xlab = "Crud", ylab = "More Crud") plot(foo.mat[1,order(foo.mat[1,])], type="l", xaxt = "n", xlab = "Crud", ylab = "More Crud") axis(1, at=1:length(foo.mat[1,]), labels= order(foo.mat[1,])) Seems like a barplot might be a nice way to go too: barplot(foo.mat[1,order(foo.mat[1,])], names.arg = order(foo.mat[1,])) A reproducible example would help the list see what you are after as I might be totally off on this. HTH, Andy> -----Original Message----- > From: r-help-bounces at stat.math.ethz.ch > [mailto:r-help-bounces at stat.math.ethz.ch]On Behalf Of michael watson > (IAH-C) > Sent: Tuesday, November 16, 2004 9:45 AM > To: r-help at stat.math.ethz.ch > Subject: [R] Simple plot() question > > > Hi > > First a simple question to do with plot(). How do I change the x-axis > labels on a plot? > > For example, I am plotting each row of a matrix, and I want each row to > be a line on my graph. Simple really. Eg: > > plot(sg[1,], type="l") > > When I do this, the x-axis is labelled 1:38, as I have 38 columns in my > matrix. When I do: > > plot(sg[1,order(sg[1,])], type="l") > > Ideally I would like the x-axis labels to reflect the new order of the > columns, but they're still numbered 1:38... I've read the plot() docs > and the par() docs and can't figure it out - I know I'm missing > something obvious, but what? > > Cheers > > Mick > > Michael Watson > Head of Informatics > Institute for Animal Health, > Compton Laboratory, > Compton, > Newbury, > Berkshire RG20 7NN > UK > > Phone : +44 (0)1635 578411 ext. 2535 > Mobile: +44 (0)7990 827831 > E-mail: michael.watson at bbsrc.ac.uk > > ______________________________________________ > 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