我在log10规模的ggplot2中制作了一堆非常小的数量的箱形图。似乎有一些阈值,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