Обратное преобразование log2 через ggplot coord_trans

#r #ggplot2 #scale

#r #ggplot2 #масштаб

Вопрос:

Я хотел бы выполнить обратное преобразование log2 только для моих координат.

Насколько я понимаю, exp_trans() и log_trans() идут вместе, поэтому

 gg.plot  
  coord_trans(x="exp")
 

выполнит обратное логарифмирование координат.

Однако я заметил, что для log2_trans() нет ничего похожего на 2_trans() .

Какие у меня варианты?

Ответ №1:

Один из вариантов — использовать scales::exp_trans(base = ...) как функцию, а не по имени. Продемонстрировано для оси y ниже. Вычисления разрыва по умолчанию не так хороши coord_trans() . Обратите внимание, что есть предупреждения о бесконечных значениях, но, вероятно, это расширенные пределы оси, которые выходят за пределы [0, Inf] домена для лог-преобразований.

 library(ggplot2)

ggplot(pressure, aes(temperature, pressure))  
  geom_line()  
  scale_y_log10()  
  coord_trans(y = scales::exp_trans(10))
#> Warning in trans$inverse(continuous_range_coord): NaNs produced
#> Warning in self$trans$y$inverse(panel_params$y.range): NaNs produced
 

Создано 2021-01-11 пакетом reprex (версия 0.3.0)