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)), 

但在这两种情况下,只显示正值(和相应的刻度!)。是什么原因,我该如何解决这个问题?

4

1 回答 1

1

您已使用log = '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))

在此处输入图像描述

于 2012-12-06T03:02:25.447 回答