2012-12-06 35 views
1

我希望把我自己的标签上的箱线图的对数转换y轴:如何获取日志轴上显示的所有标签?

with(TX, boxplot(b~tx, ylab="Biomass, g/m2, ln", yaxt="n", las=2, log="y", cex.axis=0.7)) 

数据:

pretty(log(TX$b)) 

[1] -6 -4 -2 0 2 4 6 

length(levels(TX$tx)) 

[1] 22 

我想:

axis(2, at=pretty(log(TX$b)), labels=pretty(log(TX$b))) and 

axis(2, at=c(-6, -3, -1, 0, 1, 3, 6), labels=c(-6, -3, -1, 0, 1, 3, 6)), 

但是在这两种情况下,只显示正值(和相应的滴答声!)。这是什么原因以及如何解决这个问题?

回答

1

您使用log = 'y'将调用中的y变量转换为图。

这意味着您将at组件作为未转换比例上的值。

axis(2, at= exp(c(-6, -3, -1, 0, 1, 3, 6)), labels=c(-6, -3, -1, 0, 1, 3, 6)) 

可再现例如

set.seed(1) 
TX <- data.frame(tx = gl(2,3), y= rlnorm(600, mean = -1, sd = 3)) 
boxplot(y~tx, data = TX, log = 'y',yaxt="n", las=2, cex.axis=0.7) 
axis(2, at= exp(c(-6, -3, -1, 0, 1, 3, 6)), labels=c(-6, -3, -1, 0, 1, 3, 6)) 

enter image description here