2017-02-05 168 views
3

我想用pRoC繪製ROC曲線。 但是由於某些原因,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