如何获取日志轴上显示的所有标签?

时间:2012-12-06 02:33:21

标签: r boxplot axis-labels

我想将自己的标签放在箱形图的对数转换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 个答案:

答案 0 :(得分: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