【问题标题】:Plotting mean and std. deriv. of logarithmic data in R绘制均值和标准。衍生R中的对数数据
【发布时间】:2011-08-09 14:28:17
【问题描述】:

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

我的问题是,我的 y 数据向量中有零,然后“平均”函数将 log(0) (=-Inf) 作为参数并返回 -Inf

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

如何使“平均”函数作用于“正常”数据而不是记录数据?

干杯,

曼努埃尔

【问题讨论】:

    标签: r logging mean ggplot2


    【解决方案1】:

    计算转换前的统计数据。

    暂时忽略对数刻度,我认为您要绘制的内容是这样的

    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 变量是一个因素,在这种情况下您可能需要一个条形图。条形图的对数 y 刻度是一个坏主意,但您可以证明平方根变换是合理的。

    【讨论】:

    • 嗨,Richie,感谢您的回复。抱歉,我没有准确地写下我想要的内容:我不想要平均值和标准。德尔。所有数据,但平均值和标准差。德尔。对于每个 x 坐标的所有 y 数据点。
    • 好的,我刚刚在我的值中添加了 1e-5 ;)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2022-07-05
      • 2020-11-21
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 2013-11-22
      • 1970-01-01
      • 2021-07-01
      • 2022-11-19
      相关资源
      最近更新 更多