我在 ggplot2 中以 log10 的比例制作了一堆非常小数字的箱线图。似乎有一些阈值 ggplot2 停止正确显示网格。使用 dat1 的绘图缺少网格线,而 dat2 可以按我的意愿工作。两者之间的差异似乎只是范围问题。
library(ggplot2)
set.seed(1234)
dat1 = data.frame(
val = c(10^(runif(90,-12,-10)), 10^(runif(10,-15,-12)),
10^(runif(94,-12, -9)), 10^(runif(6, -14,-12))),
d = c(rep(1,100),rep(2,100))
)
dat2 = data.frame(
val = c(10^(runif(90,-9,-7)), 10^(runif(10,-11,-9)),
10^(runif(94,-9,-6)), 10^(runif(6, -10,-9))),
d = c(rep(1,100),rep(2,100))
)
p = ggplot(dat1, aes(factor(d), val))
print(p + geom_boxplot() + scale_y_log10())
p = ggplot(dat2, aes(factor(d), val))
print(p + geom_boxplot() + scale_y_log10())
有人有什么建议吗?这是记录日志的数字问题吗?所有值都应大于.Machine$double.eps