【问题标题】:How to have sigma of something while plotting?绘图时如何获得 sigma 的东西?
【发布时间】:2016-01-25 21:25:03
【问题描述】:

我在 R 中使用 mosaic 包的 plotFun 函数。我正在尝试绘制 3D 绘图。以下是我的代码 sn-p:

plotFun(2*l*(w/log(beta*kspill*lambda^2+(1+(w/x-w)/10)*(lambda^2*5+lambda^1*5+1))+(w/x-w)/log((1+((w/x-w)/10)^1)*(lambda^2*5+lambda^1*5+1))) ~ x  & lambda ,
        x.lim=range(0.8,1), lambda.lim=range(1,3),
        l=60,w=40,kspill=10,f=1,beta=0.5,surface=TRUE)

这工作正常。现在假设我想修复lambda 并引入一个新变量t,这样如果t=2 我们得到lambda^2*5+lambda^1*5+1,就像上面的例子一样。如果t=3 我们得到lambda^3*5+lambda^2*5+lambda^1*5+1 等等。所以现在我有 t.lim=range(1,3) 用于固定 lambda :

plotFun(2*l*(w/log(beta*kspill*lambda^2+(1+(w/x-w)/10)*("depends on t"))+(w/x-w)/log((1+((w/x-w)/10)^1)*("depends on t"))) ~ x  & lambda ,
        x.lim=range(0.8,1), t.lim=range(0.5,1),
        l=60,w=40,kspill=10,f=1,beta=0.5,lambda=1,surface=TRUE)

在上面的“取决于 t”部分写什么。我想我们不能在那里放置一个for 循环来计算 5* {summation i=0 to i=t}lambdai。该怎么做呢?

【问题讨论】:

  • 一个数据示例,可能使用已安装的数据集之一,然后进一步编辑可能会减少当前 q 中所需的猜测量。

标签: r plot mosaic-plot


【解决方案1】:

你可以用

定义你的“取决于t”

depends_on_t <- makeFun(5 * sum(lambda^(1:round(t))) + 1 ~ t + lambda, lambda = 1)

但您仍有一些问题需要解决:

1) 你的plotFun() 命令正在使用xlambda 创建一个绘图,但我猜你的意思是xt

2) t 只能是整数,如果您打算在您建议的类型的总和中使用它。但是您正在创建一个假设轴连续变量的图。在计算总和之前,我插入了round(t) 作为从实数值转换为整数值的一种方法。使函数适用于非整数值,但它可能不是您真正想要的。

最后,一些额外的建议:

3) x &amp; lambda 应替换为 x + lambda。这里使用&amp; 可以追溯到mosaic 包的早期阶段,尽管它仍然受支持(我认为,我们不再对其进行真正的测试),但我们更喜欢x + lambda

4) 我建议将你的函数定义从plotFun() 命令中分离出来。您可以使用mosaic::makeFun() (如上图所示)或通常的function() 来定义您的函数以及您希望其参数的任何默认值。然后你可以对函数进行完整性检查,或者在多个图中使用它,而不是在每个图中包含所有函数的定义。

5) 使用空格和回车将使您的代码更具可读性。 (将您的示例简化为演示您所询问问题的最小示例。)

6) 我想你可能想要

depends_on_t <- makeFun(5 * sum(lambda^(0:round(t))) ~ t + lambda, lambda = 1) 而不是你描述的公式,但没有更多的上下文,我真的不知道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    相关资源
    最近更新 更多