关于 r:ggplot2 y 轴刻度未显示在对数刻度上

ggplot2 y-axis ticks not showing up on a log scale

我正在尝试使用 ggplot2 创建箱线图,但无法像 ggplot2 webiste 的示例中那样显示刻度。

这里有一些水果味道的假数据:

1
2
3
4
apples <- data.frame(fruit=c(rep("apple", 30)), taste=runif(30, 30, 50)
banana <- data.frame(fruit=c(rep("banana", 30)), taste=runif(30, 300, 500))
orange <- data.frame(fruit=c(rep("orange", 30)), taste=runif(30, 3000, 5000))
fruits <- rbind(apples,banana,orange)

如果我在 ggplot2 网站示例中进行绘图,则 y 轴刻度应类似于:

enter

1
ggplot(fruits, aes(fruit, taste) ) +  geom_boxplot() + scale_y_log10()

enter

我假设您使用的是新的 0.9.0 版本的 ggplot2,它进行了大量更改。我相信这恰好是其中之一。

如果我没记错的话,有足够多的人抱怨指数格式是默认值,这已经改变了。根据过渡指南,您可以通过以下方式实现相同的效果:

1
2
3
4
5
6
library(ggplot2)
library(scales)
ggplot(fruits, aes(fruit, taste) ) +  
    geom_boxplot() +
    scale_y_log10(breaks = trans_breaks('log10', function(x) 10^x),
                  labels = trans_format('log10', math_format(10^.x)))