【问题标题】:How do I plot a function with a summation in ggplot2?如何在ggplot2中绘制一个求和的函数?
【发布时间】:2015-11-12 05:25:59
【问题描述】:

假设我有一个向量x = 1:5。假设我想绘制公式

在此示例中为请注意,k 采用 [0, 5] 中的所有值,而不仅仅是整数。

我将如何在ggplot2 中执行此操作?

这是我的尝试:

library(ggplot2)
y <- c(1, 2, 3, 4, 5)
f <- function(k, vector){
sum((vector-k)^2/5)
}
ggplot(data=data.frame(x=c(0, 5)), aes(x)) +
stat_function(fun=f, geom='line', args(list(vector=y)))

Error in (function (k, vector)  : 
  argument "vector" is missing, with no default
Error in exists(name, envir = env, mode = mode) : 
  argument "env" is missing, with no default

如果我显得无知,我深表歉意;我是ggplot2 的新手。

【问题讨论】:

    标签: r function ggplot2


    【解决方案1】:

    两件事。首先,您的函数需要针对要绘制的变量进行适当的矢量化。 sum 将折叠结果。最简单的修复方法是使用

    f <- Vectorize(function(k, vector){
        sum((vector-k)^2/5)
    }, "k")
    

    其次,args= 是一个参数,而不是在调用 g stat_function 时的函数。使用

    ggplot(data=data.frame(x=c(0, 5)), aes(x)) +
        stat_function(fun=f, geom='line', args=list(vector=y))
    

    这会给你

    【讨论】:

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