У меня следующая проблема: я хотел бы визуализировать дискретную и непрерывную переменную на коробчатой диаграмме, в которой последняя имеет несколько экстремально высоких значений. Это делает коробчатую диаграмму бессмысленной ( точки и даже "тело" диаграммы слишком малы), поэтому я хотел бы показать это в масштабе log 10. Я знаю, что могу не учитывать крайние значения при визуализации, но я не собираюсь to.
Давайте посмотрим на простой пример с данными алмазов:
m <- ggplot(diamonds, aes(y = price, x = color))
Проблема здесь несерьезная, но я надеюсь, вы понимаете, почему я хотел бы видеть значения в масштабе log10. Давайте попробуем:
m + geom_boxplot() + coord_trans(y = "log10")
Как вы можете видеть, ось Y масштабирована по логарифму 10 и выглядит нормально, но есть проблема с осью x, что делает график очень странным.
Проблема не возникает с scale_log
, но это не вариант для меня , так как я не могу использовать пользовательский форматер таким образом. Например:
m + geom_boxplot() + scale_y_log10()
Мой вопрос: знает ли кто-нибудь решение построить коробчатую диаграмму со шкалой log10 по оси Y, метки которой можно свободно форматировать с помощью функции форматирования
, как в этом потоке ?
Редактирование вопроса для помощи респондентам на основе ответов и комментариев:
Что я действительно ищу: одна преобразованная ось (y) в лог10 с ненаучными метками. Я хотел бы обозначить это как доллар (форматтер = доллар)
или любой настраиваемый формат.
Если я попробую предложение @ 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: