【发布时间】: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