有谁知道如何在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()
)
Run Code Online (Sandbox Code Playgroud)
我希望能够轻松地通过“平滑级别”。
更改您的数据以获得更多数据点。
xvals <- 1:100
yvals <- rnorm(100)
data <- data.frame(xvals,yvals)
Run Code Online (Sandbox Code Playgroud)
您必须为与span=in 一起使用的值命名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)
)
Run Code Online (Sandbox Code Playgroud)