小编Wil*_*rly的帖子

如何使用ggplot以自动方式叠加许多相关函数?

除了一个可调参数外,我有一系列相同的函数,我想在一组轴上绘制所有这些函数,所有这些函数都叠加在一起.例如,这可能是sin(n*x),具有n的各种值,比如说1:30,我不想单独输出每个命令 - 我想应该有一些方法可以做到这一点编程.

library(ggplot2)
Run Code Online (Sandbox Code Playgroud)

将trig函数定义为频率的函数:sin(x),sin(2x),sin(3x)等.

trigf <- function(i)(function(x)(sin(i*x)))
Run Code Online (Sandbox Code Playgroud)

叠加两个功能图 - 当然这是手动的

ggplot(data.frame(x=c(0,pi)), aes(x)) + stat_function(fun=trigf(1)) +  stat_function(fun=trigf(2))
Run Code Online (Sandbox Code Playgroud)

现在尝试概括 - 我的想法是使用一个stat_functions列表 lapply

plotTrigf <- lapply(1:5, function(i)(stat_function(fun=function(x)(sin(i*x))) ))
Run Code Online (Sandbox Code Playgroud)

尝试手动使用列表的元素,但它并没有真正起作用 - 只显示了i=5图表,我不知道为什么不是我引用的那个

ggplot(data.frame(x=c(0,pi)), aes(x)) +plotTrigf[[1]] + plotTrigf[[2]]
Run Code Online (Sandbox Code Playgroud)

我认为这Reduce可能会处理添加到a的'generalized sum' ggplot()但它不起作用 - 它抱怨二元运算符的非数字参数

Reduce("+", plotTrigf)
Run Code Online (Sandbox Code Playgroud)

所以我在执行这个策略时都会遇到困难,或者可能还有其他一些方法可以做到这一点.

r ggplot2

3
推荐指数
1
解决办法
256
查看次数

(R)如何强制替换公式中的向量元素?

我正在尝试使用以向量元素表示的公式.但是,在构建公式时,元素不会被替换; 相反,它是作为一个组件留下的 - 我更愿意,如果实际值立即被替换.(这会在代码中稍后打破其他内容.)

c <- c(5:8)  #made a vector on purpose, even though only use c[1]   
form <- as.formula(y ~ exp(-(x-c[1])^2/2))
Run Code Online (Sandbox Code Playgroud)

在这一点上form包含,y ~ exp(-(x - c[1])^2/(2))但我希望它包含y ~ exp(-(x - 5)^2/(2)).

r

3
推荐指数
1
解决办法
46
查看次数

标签 统计

r ×2

ggplot2 ×1