【问题标题】:White margins within R plot using plot.roc() function使用 plot.roc() 函数在 R 图中的白色边距
【发布时间】:2016-12-08 01:34:27
【问题描述】:

我试图创建一个类似于网站上的图形。但是,我遇到了一个更基本的问题:我的 R 图中有一些我想去掉的空白。这是使用包pROC。我提供了一个可重现的示例来说明该问题:

library("pROC")
plot.roc(c(1, 1, 0, 0, 1), c(3, 4, 5, 6, 7), legacy.axes=TRUE)

上面的代码最终如下图所示:

如您所见,图像在 y 轴和图的最左侧部分之间有很多空白区域,图的右侧也是如此。该问题仅在使用 plot.roc() 时出现。我什至尝试制作我试图模拟的情节(使用网站上提供的代码),但最终还是得到了不同的图像(第一段中描述的图像的代码包含在下面):

library(pROC)
data(aSAH)

rocobj1 <- plot.roc(aSAH$outcome, aSAH$s100, main="Statistical comparison", percent=TRUE, col="#1c61b6")
rocobj2 <- lines.roc(aSAH$outcome, aSAH$ndka, percent=TRUE, col="#008600")
testobj <- roc.test(rocobj1, rocobj2)

text(50, 50, labels=paste("p-value =", format.pval(testobj$p.value)), adj=c(0, .5))

legend("bottomright", legend=c("S100B", "NDKA"), col=c("#1c61b6", "#008600"), lwd=2)

There is no white space in the original picture that used the exact same code.

我的 R 设置可能有问题,但在第二台计算机上运行代码时问题仍然存在。有人可以帮忙吗?

【问题讨论】:

  • 这里是第一段中描述的图片的链接:web.expasy.org/pROC/images/comparison.png
  • 原因是asp=1(plot.roc.roc* 方法的默认值)。由plot.roc(..., asp=F) 解决。并且您的代码出现错误,最好使用plot.roc(..., add=T) 而不是lines.roc(...)
  • 行得通,谢谢!
  • 哦,对不起。我忘记了一个更漂亮的解决方案。上述方法根据绘图窗口大小更改方面。此方法不会更改外观,而是更改框大小。 par(pty="s")plot.roc(...)
  • 这两个都很好用!我还想对两个轴都使用axis(at=, labels=, tck=) 函数,但它似乎不适用于第二种解决方案。对于axis(side=2, ...),第一个解决方案有效,但第二个解决方案有些奇怪。然而,这不如让基本情节顺利运作重要。

标签: r plot proc-r-package


【解决方案1】:

该问题的答案已在 cmets 中给出,但我认为值得将其写在正确的答案中。还应该注意的是,您和链接的示例都省略了指定用于保存绘图的图形设备的任何内容,因此说您“使用完全相同的代码”有点误导。

通常ROC曲线应该在单位平方内绘制,使灵敏度和特异性占据相同的空间,使可视化和比较更容易(通常ROC曲线用于显示特异性和灵敏度之间的权衡并给出其中之一更多的空间会使这种比较更加困难)。

pROC 包通过在内部调用中将asp=1 设置为plot.window 来实现这一点。您有两种选择:

  1. 设置asp=NA(或类似的)并“释放”轴(请注意,您的 ROC 曲线将不是单位正方形,而是单位矩形,因此可能更难以解释):

    rocobj1 <- plot.roc(aSAH$outcome, aSAH$s100, asp = NA)
    

  2. 在调用 plot.roc 之前将 the graphical parameter pty 更改为 s 以使边距位于绘图之外:

    par(pty = "s")
    rocobj1 <- plot.roc(aSAH$outcome, aSAH$s100)
    

【讨论】:

    猜你喜欢
    • 2015-09-21
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 2014-01-10
    相关资源
    最近更新 更多