ggplot2 отметки оси y не отображаются в логарифмическом масштабе - PullRequest
2 голосов
/ 11 марта 2012

Я пытаюсь использовать ggplot2 для создания графика коробчатого графика, но у меня возникают проблемы с отображением тиков, как это происходит в примерах веб-сайта ggplot2.

Вот некоторые поддельные данные вкусаfruits:

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 image description here

Вместо этого я получаю ось типа:

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

enter image description here

Как бы я получил шкалу оси Y в научной нотации?

1 Ответ

3 голосов
/ 11 марта 2012

Я предполагаю, что вы используете новую версию 0.9.0 ggplot2, которая претерпела большое количество изменений.Я полагаю, что это один из них.

Если я правильно помню, достаточное количество людей жаловались на экспоненциальный формат по умолчанию, что это изменилось.В соответствии с руководством по переходу вы можете добиться того же эффекта с помощью:

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