【问题标题】:error labelling axis of plot using Ecdf使用 Ecdf 的绘图的错误标记轴
【发布时间】:2012-09-20 17:52:27
【问题描述】:

我正在尝试使用以下代码绘制图表:

Require(Hmisc)
Ecdf(ceac_primary,xlab="axis label",xlim=c(5000,50000),q=c(0.9,0.1),
ylab="Probability of Success",main="CEAC")

其中 ceac_primary 是具有 1 个变量的 90k 观测值的数据框。

当我包含 'xlab="axis label"' 时,我不断收到以下错误:

Error in Ecdf.default(v, group = group, weights = weights, normwt = normwt,  : 
formal argument "xlab" matched by multiple actual arguments

但是,如果我排除代码的 x 轴标签部分,它会很好地绘制图形。

这是一个已知问题吗?如果是,是否有其他方法来绘制 x 轴标签?

谢谢

【问题讨论】:

    标签: r


    【解决方案1】:

    深入研究Ecdf.data.frame(将data.frame 传递给Ecdf 时调用的方法)的源代码,看起来该函数创建了一个对象,该对象稍后将传递给xlab 参数。因此,在使用 data.frame 运行 Ecdf 时,不应将 xlab 作为用户提供的参数。这是创建对象lab 的代码,该对象在Ecdf.data.frame 中传递给xlab

    lab <- if (vnames == "names") 
            nam[j]
        else label(v, units = TRUE, plot = TRUE, default = nam[j])
    

    然后Ecdfxlab = lab 调用,而且Ecdf.data.frame 省略号中的任何参数也被传递给Ecdf。由于xlab 不是Ecdf.data.frame 的正式参数,这就是你得到错误的原因。

    要绕过它,请尝试以下任一方法:

    将您的 data.frame 转换为适当类的向量(我猜是数字),然后运行

    Ecdf(ceac_primary_Vec, xlab = "axis label")
    

    或者,您可以使用 Hmisc 包中的 label 函数为 data.frame 中的一列创建标签。如果该列名为myCol,则可以运行

    label(ceac_primary$myCol) <- "axis label"
    Ecdf(ceac_primary)
    

    这应该可以正确打印您的轴标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多