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
Simple plot() question
4 messages · michael watson (IAH-C), Dimitris Rizopoulos, James W. MacDonald +1 more
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