Построение среднего и стандартного DERIV. логарифмических данных в R - PullRequest
1 голос
/ 20 апреля 2011

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

Моя проблема в том, что в моем y-data-vector есть нули, и функция «mean» получает log (0).) (= -Inf) в качестве аргумента, а также возвращает -Inf

qplot(x, y, log="xy") + stat_summary(fun.y=mean, geom="point")

Как заставить функцию «среднего» работать с «обычными» данными, а не с журналом'данные?

Приветствия,

Мануэль

Ответы [ 2 ]

2 голосов
/ 20 апреля 2011

Рассчитать статистику перед преобразованием.

Игнорирование масштабов журнала на данный момент, я думаю, что вы хотите построить что-то вроде этого

p <- ggplot(dfr) + 
  geom_point(aes(x, y)) +       
  geom_point(
    aes(
      x = mean(x), 
      y = mean(y)
    ), 
    colour = "blue",
    size = 5
  ) +
  geom_rect(
    aes(
      xmin = mean(x) - sd(x),
      xmax = mean(x) + sd(x), 
      ymin = mean(y) - sd(y),
      ymax = mean(y) + sd(y)
    ),
    alpha = 0.2
  ) 
p

Теперь добавление в масштаб журнала являетсясделано как обычно

p +
  scale_x_log10() + 
  scale_y_log10() 

Конечно, нули не будут отображаться на графике, как они не должны.Чтобы справиться с ними, у вас есть выбор между удалением их из набора данных или заменой небольшого положительного числа.


РЕДАКТИРОВАТЬ: если вы хотите получить статистику для значений y, сгруппированных по значению x, это звучит какx-переменная является фактором, и в этом случае вы, вероятно, захотите диаграмму.Логарифмическая шкала для диаграмм - плохая идея, но вы могли бы вместо этого оправдать преобразование квадратного корня.

1 голос
/ 20 апреля 2011

Прочтите страницу справки для coord_trans.Использование coord_trans(xtrans = 'log10', ytrans = 'log10') поможет вам создать график log-log, поскольку преобразования координат происходят после вычисления всей статистики.

...