我有以下代码构建混淆矩阵图像:
truth <- c(0,1,0,0,0,1,0,1,0,1)
pred <- c(0,0,0,0,0,1,0,1,0,0)
FWConf <- mlearning::confusion(factor(pred,labels=c("Loyal","Churn")), factor(truth,labels=c("Loyal","Churn")),vars=c("a","b"), labels = c("Actual","Predicted"))
opar <- par(mar=c(14, 4, 7, 2))
x <- x.orig <- unclass(FWConf)
x <- log(x + 0.5) * 2.33
x[x < 0] <- NA
x[x > 10] <- 10
diag(x) <- -diag(x)
graphics::image(1:ncol(x), 1:ncol(x), -(x[, nrow(x):1]), xlab='', ylab='',col=colorRampPalette(c("red","yellow","green"))(41), xaxt='n', yaxt='n', zlim=c(-10, 10))
axis(1, at=1:ncol(x), labels=colnames(x), cex.axis=0.8)
axis(2, at=ncol(x):1, labels=colnames(x), las=1, cex.axis=0.8)
title(ylab='Predicted', line=0.5, xlab = 'Actual')
abline(h = 0:ncol(x) + 0.5, col = 'gray')
abline(v = 0:ncol(x) + 0.5, col = 'gray')
text(1:6, rep(6:1, each=6),
labels = sub('^0$', '', round(c(x.orig), 0)))
box(lwd=2)
title(sub = paste("\n\n\n +-------------------------------------------------------+",
"\n\t[\tCosto Mancato Allarme:\t", 90 ,"\t euro\t]",
"\n\t[\tCosto Falso Allarme :\t", 10 ,"\t euro\t]",
"\n\t[\tIndice di Salvataggio:\t", 0.4*100 ,"\t % \t]",
"\n+-------------------------------------------------------+"),
main = paste(" +-------------------------+","\n | Costo = " ,10, " euro |", "\n+-------------------------+"))
par(opar)
为了将字幕与图像分开,我按以下方式更改了标题部分。
title(main = paste(" +-------------------------+","\n | Costo = " ,costo, " euro |", "\n+-------------------------+"))
title(sub = paste("\n\n\n +-------------------------------------------------------+",
"\n[\tCosto Mancato Allarme:\t", z2 ,"\t euro\t]",
"\n[\tCosto Falso Allarme :\t", z1 ,"\t euro\t]",
"\n[\tIndice di Salvataggio:\t", savingRate*100,"\t % \t]",
"\n+-------------------------------------------------------+"),
line = 7
)
有没有更好的方法来显示标题,副标题和图片中包含的信息?像盒子,矩形等东西?