在plotmath表达式中粘贴一个特殊参数?

时间:2013-10-24 10:11:46

标签: r graphics syntax plot plotmath

在为情节标题提供plotmath表达式时,我认为paste就像paste一样,但现在我不确定。它是plotmath函数的特殊参数吗?在plotmath paste()中,paste0()的行为与paste0直接引用,而sep的{​​{1}}参数被忽略,但未在表达式中引用。如何解释paste()?请参阅以下四个示例:

paste()

enter image description here

1 个答案:

答案 0 :(得分:4)

在plotmath中确实paste不是经典的paste。见?plotmath

  

粘贴(x,y,z)并列x,y和z

paste上下文中的

plotmath没有sep参数。

在源代码plotmath.c中,您可以看到paste已重新定义:

/*----------------------------------------------------------------------
*
* Code for Concatenate Expressions
*
*/

static int ConcatenateAtom(SEXP expr)
{
    return NameAtom(expr) && NameMatch(expr, "paste");
}

static BBOX RenderConcatenate(SEXP expr, int draw, mathContext *mc,
                         pGEcontext gc, pGEDevDesc dd)
{
    BBOX bbox = NullBBox();
    int i, n;

    expr = CDR(expr);
    n = length(expr);

    for (i = 0; i < n; i++) {
        bbox = CombineBBoxes(bbox, RenderElement(CAR(expr), draw, mc, gc, dd));
        if (i != n - 1)
         bbox = RenderItalicCorr(bbox, draw, mc, gc, dd);
        expr = CDR(expr);
    }
    return bbox;
}

稍后会在文件中发送:

static BBOX RenderFormula(SEXP expr, int draw, mathContext *mc,
                         pGEcontext gc, pGEDevDesc dd)
{
    SEXP head = CAR(expr);

    ....
    else if (ConcatenateAtom(head))
        return RenderConcatenate(expr, draw, mc, gc, dd);
    ....

(据说我对C一无所知所以我可能错了)