[R] graphical output - customization of x axis

Christine SINOQUET christine.sinoquet at univ-nantes.fr
Wed Jun 1 14:56:46 CEST 2011


Hello,

I do not understand why the following source does not success in 
customizing the x axis. The wished customization just consists in 
labelling the x ticks with 
"0kb","1kb","5kb","10kb","20kb","50kb","100kb","inf".

pathFileName <- "test1.png"


stats4H <- c(0.8623, 0.7142, 0.7211, 0.6753, 0.6290, 0.6157, 0.5919, 0.5218)
stats4W <- c(0.8724, 0.7889, 0.7253, 0.7235, 0.6860, 0.6630, 0.6424, 0.5228)

stats5H <- c(0.7610, 0.6832, 0.6310, 0.5527, 0.5231, 0.5600, 0.6147, 0.5131)

stats5W <- c(0.7740, 0.7641, 0.7099, 0.6918, 0.6483, 0.5769, 0.5539, 0.4934)


  plotType <- "b"


  png(file=pathFileName, bg="transparent")

  xxf <- c("0kb","1kb","5kb","10kb","20kb","50kb","100kb","inf")
  xf  <- 1:8

  par(lab = c(length(xxf), 5, 7))
  #c(x, y, len)
  # ‘lab’ A numerical vector of the form ‘c(x, y, len)’ which modifies
  # the default way that axes are annotated. The values of ‘x’
  # and ‘y’ give the (approximate) number of tickmarks on the x
  # and y axes and ‘len’ specifies the label length.  The default
  # is ‘c(5, 5, 7)’.  Note that this only affects the way the
  # parameters ‘xaxp’ and ‘yaxp’ are set when the user coordinate
  # system is set up, and is not consulted when axes are drawn.
  # ‘len’ _is unimplemented_ in R.


  plot(stats4H, xlab = "half-width of window", ylab="AUC", 
type=plotType, pch=7, col="blue", cex = 0.5, ylim=c(0.4,1),xlim=c(1,8), 
xaxt = "n") # without x axis

  #If you are going to create a custom axis, you should suppress the 
axis automatically generated by your high level plotting function. The 
option axes=FALSE suppresses both x and y axes. xaxt="n" and yaxt="n" 
suppress the x and y axis respectively.

positions <- 1:8
  axis(side = 1, at=positions, labels=xxf , pos=0, lty=1, 
col.axis="black", las=0)

  # side: bottom (1)
  # at: the points at which tick-marks are to be drawn
  # pos:coordinate of defined axis on the other axis
  # lty: linetype
  # col: line and tick marker color
  # las: labels are parallel (=0) or perpendicular(=2) to axis
  # tck: length of tick mark as fraction of plotting region (negative 
number is outside graph,
  #      positive number is inside, 0 suppresses ticks, 1 creates 
gridlines) default is -0.01

  lines(x = xf, y = stats4W, type=plotType, pch=15, col="green", cex = 0.5)
  lines(x = xf, y = stats5H, type=plotType, pch=16, col="red", cex = 0.5)
  lines(x = xf, y = stats5W, type=plotType, pch=17, col="magenta",cex = 0.5)


  legend("bottomright",
         legend = c("H, statistic S1", "W, statistic S1", "H, statistic 
S2", "W, statistic S2"),
         col = c("blue", "green", "red", "magenta"),
         pch = c(7,15,16,17),
         bty = "n",
         cex = 0.8,
         inset = c(0.1, 0.1))

  dev.off()


I thank you in advance for any help.

Best regards,

Christine Sinoquet



More information about the R-help mailing list