2017-02-05 13 views
3

Я хочу нарисовать кривые ROC с pRoC. Однако по какой-то причине есть дополнительное пустое пространство по обе стороны от оси x, и я не могу удалить его с помощью xlim. Некоторые примеры кода:кривые pROC ROC удалить пустое место

library(pROC) 
n = c(4, 3, 5) 
b = c(TRUE, FALSE, TRUE) 
df = data.frame(n, b) 
rocobj <- plot.roc(df$b, df$n, percent = TRUE, main="ROC", col="#1c61b6", add=FALSE) 

enter image description here

Я попробовал файл справки Proc, но это не помогает мне. Еще более озадачивающим является то, что ось Y в порядке ...

Я очень ценю вашу помощь!

ответ

3

Убедитесь, что устройство черчения является квадратным и настроить поля так, чтобы верхний + нижний == левый + правый:

library(pROC) 
png("test.png", width = 480, height = 480) 
par(mar = c(4, 4, 4, 4)+.1) 
n = c(4, 3, 5) 
b = c(TRUE, FALSE, TRUE) 
rocobj <- plot.roc(b, n, percent = TRUE, main="ROC", col="#1c61b6", add=FALSE) 
dev.off() 

enter image description here

+0

Привет Calimo, thans за вашу помощь! Кажется, это работает. Тем не менее, есть ли способ исправить это, не запустив сначала запись в файл (ака просто внутри R)? – Hendrik

+0

Вы также сможете сделать это с помощью своего интерактивного устройства. 'getOption (" device ") (width = ..., height = ...)' – Calimo

2

Другим ответом, если вы не возражаете, чтобы иметь искаженной оси, заключается в использовании параметра asp. По умолчанию он установлен в 1, обеспечивая обе оси имеют одинаковый масштаб и кривая ROC квадрат, но вы можете отключить его с asp = NA:

library(pROC) 
par(mar = c(4, 4, 4, 4)+.1) 
n = c(4, 3, 5) 
b = c(TRUE, FALSE, TRUE) 
rocobj <- plot.roc(b, n, percent = TRUE, main="ROC", col="#1c61b6", add=FALSE, asp = NA) 

enter image description here