绘制平均值和标准。 DERIV。 R中的对数数据

时间:2011-04-20 15:04:09

标签: r logging mean ggplot2

我想以loglog规模绘制存储在两个向量(x和y)中的一些数据。 此外,我想添加均值和标准推导(后者使用条形)。

我的问题是,我的y-data-vector中有零,然后“mean”函数将log(0)(= - Inf)作为参数并返回-Inf

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

如何使“均值”功能对“正常”数据起作用而不对日志数据起作用?

干杯,

曼努埃尔

2 个答案:

答案 0 :(得分:2)

计算转换前的统计数据。

暂时忽略日志比例,我认为您想要绘制的内容是这样的

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() 

当然,你的零不会显示在图表上,因为它们不应该显示。要处理它们,您可以选择从数据集中删除它们还是替换一个小的正数。


编辑:如果你想要按x值分组的y值的统计数据,听起来你的x变量是一个因素,在这种情况下你可能想要一个条形图。记录条形图的日志是一个坏主意,但你可以证明平方根变换的合理性。

答案 1 :(得分:1)

阅读coord_trans的帮助页面。使用coord_trans(xtrans = 'log10', ytrans = 'log10')可以帮助您创建对数 - 日志图,因为在计算完所有统计数据后会发生坐标转换。