Trouble plotting with factor
On Sat, 2004-01-31 at 07:34, Martin Maechler wrote:
"Marc" == Marc Schwartz <MSchwartz at medanalytics.com>
on Fri, 30 Jan 2004 20:19:52 -0600 writes:
<<excellent nicely told help text for Paul Johnson>>
Thanks Martin.
I want to comment on the following because it's
"not quite optimal", and still is recommended on-and-on ....
Marc> # Now use matplot() to plot each column
Marc> # Do not plot the axes
Marc> matplot(df, type = "l", axes = FALSE,
Marc> xlab = "Age Group", ylab = "Proportion DL Ownership")
Marc> # Create the X axis, specifying 15 tick marks
Marc> # and using rownames(df) as the labels
Marc> axis(1, at = 1:nrow(df), labels = rownames(df))
Marc> # Now draw the Y axis with defaults
Marc> axis(2)
Marc> # Put a box around the whole thing
Marc> box()
More elegant is not to set axes = FALSE (and having to add
axis(2) and box() later) but to use xaxt = 'n' {only
suppressing x-axis}, i.e., instead of the above 4 statements,
only two :
matplot(df, type = "l", xaxt = "n", # do not plot the 'x' axis
xlab = "Age Group", ylab = "Proportion DL Ownership")
# Create the X axis, specifying 15 tick marks
# and using rownames(df) as the labels
axis(1, at = 1:nrow(df), labels = rownames(df))
Right. I had actually started to use that approach (which I have used in the past for plot(), etc.). I must have had a transient loss of blood flow to the brain, as I for some reason (uncommented in my code), I decided to use 'axes = FALSE'. Either that, or I was asleep at the keyboard and my fingers were on autopilot.... :-) Thanks for pointing that out Martin. Best regards, Marc