Skip to content

Plot label axis with expression

3 messages · mariojose, Noia Raindrops, David Winsemius

#
Hi all,

I need help with axis in plot.

I want to edit y axis label of my plot. My data is like:

x <- c(100,50,10,1,0.1,0.05,0.001)

plot(log(x))

axTicks(2) # Label of y axis
[1] -6 -4 -2  0  2  4

I'd like that y axis label was like: e^-6, e^-4, etc. (with text "e"
superscript -6, -4, etc.) I try to use expression(), but don't work.

plot(log(x), yaxt="n")
axis(2, at=axTicks(2), labels=expression(rep("e",times=length(axTicks(2))) ^
axTicks(2)), las=2)

Anybody have idea how to do this?

Regards,

MJ
...................................................
Mario Jos? Marques
Master student in Ecology
Institute of Biology, Dept. Plant Biology, Ecology Lab.
State University of Campinas - UNICAMP
Campinas, S?o Paulo, Brazil 



--
View this message in context: http://r.789695.n4.nabble.com/Plot-label-axis-with-expression-tp4641046.html
Sent from the R help mailing list archive at Nabble.com.
#
Hello,

Use 'parse' for converting from character to expression:

x <- c(100, 50, 10, 1, 0.1, 0.05, 0.001)
plot(log(x), yaxt = "n")

parse(text = sprintf("e^%d", axTicks(2)))
## expression(e^-6, e^-4, e^-2, e^0, e^2, e^4)

axis(2, at = axTicks(2), labels = parse(text = sprintf("e^%d", axTicks(2))), las = 1)
#
On Aug 22, 2012, at 2:46 PM, Noia Raindrops wrote:

            
Here's a "parse-free" approach:

axis(2, at = axTicks(2), labels =
               as.expression( sapply( axTicks(2), function(x)  
bquote(e^.(x)))),
         las = 1)

I have not found a case that makes one approach superior, although  
there seems to be an avoid-parse sentiment abroad in the R-cognoscenti.