Skip to content

Row order in plot

7 messages · qroberts, Peter Alspach, Sarah Goslee

#
I'm new to R so forgive me if this seems like a simple question:

So I have table where the row titles are string variables. When I plot the
data with rows along the x-axis, the data is ordered alphabetically as
opposed to the order of the table.

How can I preserve the row order of the table in the plot?

Thanks in advance.
#
It would be easier to answer your question if we knew what your
data look like, what R commands you've tried, and what result
you want.

One possibility: plot the data against 1:nrow(yourdata), and add
the row names as labels.

Sarah
On Thu, Dec 11, 2008 at 2:35 PM, qroberts <lvaickus at bu.edu> wrote:

  
    
#
This is the format of the table as it appears in R
X  Green.1  Yellow.2     Blue.3      Gray.4
1   Base   469.5399  508.1532  487.1443  492.2544
2    PBS   459.6553  474.0124  417.2651  392.9518
3 25 Mch  359.6216  418.0417  377.7020  394.2102
4 50 Mch  206.1835  262.8818  252.8041  172.0568
5   Ext.   287.4200   279.8562  287.3744  236.5091

I have been plotting Green.1 vs X as follows

plot(Green.1~X,data=mice)

The order on the x axis is alphabetical e.g 25 Mch, 50 Mch, Base, Ext., PBS

When I would like it to be : Base, PBS, 25 Mch, 50 Mch, Ext. like in the
table.
#
Tena koe

Try

mice$X <- factor(mice$X, levels=mice$X)
plot(Green.1~X,data=mice)

HTH ....

Peter Alspach
The contents of this e-mail are confidential and may be subject to legal privilege.
 If you are not the intended recipient you must not use, disseminate, distribute or
 reproduce all or any part of this e-mail or attachments.  If you have received this
 e-mail in error, please notify the sender and delete all material pertaining to this
 e-mail.  Any opinion or views expressed in this e-mail are those of the individual
 sender and may not represent those of The New Zealand Institute for Plant and
 Food Research Limited.
#
Then yes, you can do something like I originally suggested, though there
are other possible approaches.

Making up fake data rather than typing yours in:
X c1 c2 c3
1 D  1  6 11
2 E  2  7 12
3 A  3  8 13
4 C  4  9 14
5 B  5 10 15
Gives what I think you want.

Sarah
On Thu, Dec 11, 2008 at 3:12 PM, qroberts <lvaickus at bu.edu> wrote:
#
Though the results of using plot() with a factor may not always be what you
expect, as plot.factor() differs from plot().

Sarah

On Thu, Dec 11, 2008 at 4:36 PM, Peter Alspach
<PAlspach at hortresearch.co.nz> wrote: