【问题标题】:Getting vectors out of ggplot2从 ggplot2 中获取向量
【发布时间】:2011-10-05 04:40:09
【问题描述】:

我试图表明在我正在分析的一些数据中存在一个奇怪的“颠簸”(这与市场份额有关。我的代码在这里:-

qplot(Share, Rate, data = Dataset3, geom=c("point", "smooth"))

(我很欣赏如果没有数据集,这不是很有用的代码)。

无论如何我可以得到用于从 R 中生成平滑线的数字向量吗?我只需要该层来尝试将模型拟合到平滑数据。

感谢您的任何帮助。

【问题讨论】:

  • 提供代码做得很好。如果您需要一些玩具数据来使您的示例工作,请记住 R 内置了许多数据集,每个人都可以访问。
  • 欢迎来到 SO。第一个问题很好。正如@RichieCotton 所说,您始终可以使用内置数据集来说明问题。有关使用内置数据集 cars 的示例,请参阅我的答案。详情请见?cars

标签: r data-modeling ggplot2


【解决方案1】:

是的,有。 ggplot 使用函数loess 作为geom_smooth 中的默认平滑器。这意味着您可以直接使用loess 来估计您的平滑参数。

这是一个例子,改编自?loess

qplot(speed, dist, data=cars, geom="smooth")

使用loess 估计平滑数据,使用predict 估计值::

cars.lo <- loess(dist ~ speed, cars)
pc <- predict(cars.lo, data.frame(speed = seq(4, 25, 1)), se = TRUE)

估计值现在在pc$fit 中,标准误差在pc$fit.se 中。以下代码将拟合值提取到 data.frame 中,然后使用 ggplot 绘制它:

pc_df <- data.frame(
    x=4:25,
    fit=pc$fit)

ggplot(pc_df, aes(x=x, y=fit)) + geom_line()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多