У меня есть следующая проблема: я хотел бы представить дискретную и непрерывную переменную на блокпосте, в котором последний имеет несколько экстремально высоких значений. Это делает коробочный график бессмысленным (точки и даже «тело» диаграммы слишком малы), поэтому я хотел бы показать это в масштабе log10. Мне известно, что я могу исключить крайние значения из визуализации, но я не собираюсь этого делать.
Давайте рассмотрим простой пример с данными о бриллиантах:
m <- ggplot(diamonds, aes(y = price, x = color))
![alt text](https://i.stack.imgur.com/aK2Ro.png)
Проблема здесь несерьезна, но я надеюсь, вы могли бы представить, почему я хотел бы видеть значения в масштабе log10. Давайте попробуем это:
m + geom_boxplot() + coord_trans(y = "log10")
![alt text](https://i.stack.imgur.com/ifWhk.png)
Как вы можете видеть, ось y масштабирована по log10 и выглядит нормально, но есть проблема с осью x, которая делает график очень странным.
Проблема не возникает с scale_log
, но для меня это не вариант , так как я не могу использовать пользовательский форматер таким образом. E.g.:
m + geom_boxplot() + scale_y_log10()
![alt text](https://i.stack.imgur.com/SUdX5.png)
Мой вопрос: кто-нибудь знает решение для построения коробчатого графика со шкалой log10 по оси Y, метки которого можно свободно форматировать с помощью функции formatter
, как в этой теме ?
Редактирование вопроса, чтобы помочь ответчикам на основе ответов и комментариев:
То, что я действительно после: одна log10 трансформированная ось (y) с не научными метками. Я хотел бы обозначить его как доллар (formatter=dollar)
или любой другой формат.
Если я попробую предложение @ hadley, я получу следующие предупреждения:
> m + geom_boxplot() + scale_y_log10(formatter=dollar)
Warning messages:
1: In max(x) : no non-missing arguments to max; returning -Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
3: In max(x) : no non-missing arguments to max; returning -Inf
С неизменными метками оси y:
![alt text](https://i.stack.imgur.com/sRScn.png)