Почему мы используем преобразование данных, преобразование масштаба и преобразование координат вordin_trans в ggplot2? - PullRequest
0 голосов
/ 13 апреля 2020

В какой ситуации полезно использовать преобразование данных, преобразование масштаба и преобразование координат вordin_trans в ggplot2? И в чем их разница? Некоторые примеры ниже:

ggplot(diamonds, aes(log10(carat), log10(price))) +
  geom_point()
ggplot(diamonds, aes(carat, price)) +
  geom_point() +
  scale_x_log10() +
  scale_y_log10()
ggplot(diamonds, aes(carat, price)) +
  geom_point() +
  coord_trans(x = "log10", y = "log10")

1 Ответ

0 голосов
/ 13 апреля 2020

Преобразования масштаба происходят перед любым статистическим вычислением, поэтому статистические вычисления основаны на преобразованных в масштабе данных. Желательно ли это, зависит только от вас.

Вы можете видеть это на графиках ниже.

Также преобразования масштаба влияют на разрывы осей, в то время как преобразования координат не влияют на разрывы осей; обратите внимание на метки оси Y. Это также отличается от преобразований данных в вызове aes(), а именно в том, что ваши метки осей по-прежнему отражают исходное пространство данных.

Как правило, вы можете сказать, что если вы хотите только визуальное преобразование, вы можете использовать coord_trans(), а если вы хотите преобразовать данные, вы используете преобразования масштаба.

library(ggplot2)
library(patchwork)
#> Warning: package 'patchwork' was built under R version 3.6.3

p1 <- ggplot(diamonds, aes(cut, price)) +
  geom_boxplot()

p2 <- p1 +
  scale_y_continuous(trans = "log10")

p3 <- p1 +
  coord_trans(y = "log10")

p1 + p2 + p3

Создано в 2020-04-13 пакетом представ. (v0.3.0)

Существует также разница в установлении пределов шкалы и координат, что связано с аргументом oob в шкале.

...