3

有谁知道如何在ggplot上使用操作(),以便轻松选择平滑(跨度)级别?我尝试了以下方法但没有成功:

# fake data
    xvals <- 1:10
    yvals <- xvals^2*exp(rnorm(2,5,0.6))
    data <- data.frame(xvals,yvals)

# plot with manipulate
    manipulate(
    ggplot(data,aes(xvals,yvals)) +
      geom_smooth(span=slider(0.5,5)) +
      geom_point()
    )

我希望能够轻松地循环通过“平滑级别”。

4

1 回答 1

5

更改您的数据以获得更多数据点。

xvals <- 1:100
yvals <- rnorm(100)
data <- data.frame(xvals,yvals)

您必须为 in 中使用的值指定名称span=geom_smooth()例如span.val),然后span.val=slider(0.1,1)在函数外部定义ggplot()- 在本例中作为 的第二个参数manipulate()

library(manipulate)
library(ggplot2)
manipulate({
  #define plotting function 
  ggplot(data,aes(xvals,yvals)) +
    geom_smooth(method="loess",span=span.val) +
    geom_point()},
  #define variable that will be changed in plot
    span.val=slider(0.1,1)
)
于 2013-04-09T16:51:18.507 回答