Вот более простой пример, который должен помочь объяснить различия. Предположим, у нас есть два значения во фрейме данных, 1 и 10. Среднее из них равно 11/2 = 5,5.
my_data = data.frame(y = c(1, 10))
mean(my_data$y)
#[1] 5.5
Если мы возьмем логарифм (по основанию 10) из них, мы получим 0 и 1. Среднее логарифмическое значение равно (0+1)/2 = 0,5. Если мы преобразуем это обратно в исходный масштаб, мы получим 10 ^ 0,5 = 3,162. Таким образом, мы можем видеть, что десять к среднему по бревнам — это не то же самое, что и среднее; журнал «сжимает» большие значения, чтобы они меньше влияли на среднее значение.
log10(my_data$y)
#[1] 0 1
mean(log10(my_data$y))
#[1] 0.5
10^mean(log10(my_data$y))
#[1] 3.162278
Мы увидим то же самое, если построим это. Использование преобразования координат будет управлять окном просмотра и пространственным положением точек данных (например, обратите внимание, что высота по вертикали в пикселях от 5,00 до 5,25 немного больше, чем расстояние от 5,75 до 6,00 из-за логарифмического масштаба), но это не меняет точки данных — мы по-прежнему получаем среднее значение 5,5:
ggplot(my_data, aes(y = y, x = 1)) +
geom_point(stat = "summary", fun = "mean") +
coord_trans(y = "log10")

Но если мы переключимся на scale_y_log10
, преобразование будет применено перед вычислением среднего значения, поэтому значение, которое мы получим, равно десяти среднему значению журналов, которое, как мы видели, не совпадает со средним арифметическим.
ggplot(my_data, aes(y = y, x = 1)) +
geom_point(stat = "summary", fun = "mean") +
scale_y_log10()
