ggplot2 y轴刻度未显示在对数刻度上

时间:2012-03-11 02:28:47

标签: r ggplot2 graphing

我正在尝试使用ggplot2创建一个boxplot图,但是我无法像在ggplot2 webiste的示例中那样显示ticks。

以下是一些关于水果味道的虚假数据:

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 website example中进行绘图,则y轴刻度应如下所示:

enter image description here

相反,我得到一个像:

的轴
ggplot(fruits, aes(fruit, taste) ) +  geom_boxplot() + scale_y_log10()

enter image description here

如何以科学计数法得到y轴刻度?

1 个答案:

答案 0 :(得分:3)

我假设您正在使用ggplot2的新0.9.0版本,该版本经历了大量更改。我相信这恰好是其中之一。

如果我没记错的话,有足够多的人抱怨指数格式是默认格式,这就改变了。根据{{​​3}},您可以通过以下方式获得相同的效果:

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