# [R] Plotting Factors -- Sorting x-axis

Marc Schwartz mschwartz at medanalytics.com
Wed Apr 23 05:39:24 CEST 2003

```>-----Original Message-----
>From: r-help-bounces at stat.math.ethz.ch
>[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Ko-Kang
>Kevin Wang
>Sent: Tuesday, April 22, 2003 9:57 PM
>To: R Help
>Subject: [R] Plotting Factors -- Sorting x-axis
>
>
>Hi,
>
>Say I have a factor with 20-levels: 1, 2, 3, ..., 20, called foo.
>
>If I do
>  plot(foo)
>it will draw a barplot.  But the x-axis is sorted
>alphanumerically, i.e.
>1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2, 3, ..., 9, which
>is not what
>I want.  I'd like to x-axis to be in the order of 1 ~ 20
>numerically.  So,
>the question is, how do I change the order on the x-axis in this
case?
>
>--
>Cheers,
>
>Kevin

# Create vector as you have with chars
# Note the factor level values
> x <- factor(as.character(1:20))
> x
[1] 1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18
[19] 19 20
20 Levels: 1 10 11 12 13 14 15 16 17 18 19 2 20 3 4 ... 9

# Now sort factor levels by numeric value
# Note the factor level values
> x <- factor(x, levels = sort(as.numeric(x)))
> x
[1] 1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18
[19] 19 20
20 Levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 20

Now plot(x).

Hope that helps.

Marc Schwartz

```