R "stopping" 中对角线处的多边形
Polygon in R "stopping" at the diagonal
在 上获得帮助后,我开始重现结果 "manually" 并生成相同的 ROC 曲线。
这几乎成功了,除了两个细节。第一,我无法将绘图上 y axis
的限制更改为左侧;第二,右侧图上 AUC 的填充在对角线处停止:
左图的代码来自对先前问题的回答,但抑制了数据的所有先前格式,归结为:
plot.roc(data$outcome, data$s100b,
auc.polygon = TRUE,
auc.polygon.col=rgb(.35,0.31,0.61, alpha = 0.4),
auc.polygon.border=rgb(.35,0.31,0.61, 0.4))
右边的代码是:
plot(rock[,6] ~ rock[,7], xlim = rev(range(rock[,7])), type = 'l')
polygon(rock[,6] ~ rock[,7], xlim=rev(range(rock[,7])), col = 3)
segments(1,0,0,1, col=6)
... 和 rock
是一个数据框放在一起:
head(rock)
cut positive negative tru_pos tru_neg sens specif
[1,] 0.0000000 113 0 41 0 1.0000000 0.00000000
[2,] 0.1697713 112 1 40 0 0.9756098 0.00000000
[3,] 0.1767962 107 6 40 5 0.9756098 0.06944444
[4,] 0.1840474 104 9 40 8 0.9756098 0.11111111
[5,] 0.1915268 102 11 40 10 0.9756098 0.13888889
[6,] 0.1992360 93 20 37 16 0.9024390 0.22222222
如何让绿色填充对角线下方的下三角?如果可能的话,我可以偷偷提出第二个关于将左侧的 y 轴从 (-0.5, 0.5) 减少到 (0, 1) 的快速问题。
编辑:
在末尾添加一行零,我生成了这个:
还不错,但是对于右边距上的垂直蓝线...
您在调用 polygon
时遗漏了点 (0, 0)。
如果您在 ROC 数据上调用它,polygon
将通过连接曲线的第一个点和最后一个点来简单地闭合形状。它无法知道您希望它通过 (0, 0),因此您必须明确指定它,例如:
poly <- rbind(rock[,6:7], c(0,0))
polygon(poly, xlim=rev(range(rock[,7])), col = 3)
在
这几乎成功了,除了两个细节。第一,我无法将绘图上 y axis
的限制更改为左侧;第二,右侧图上 AUC 的填充在对角线处停止:
左图的代码来自对先前问题的回答,但抑制了数据的所有先前格式,归结为:
plot.roc(data$outcome, data$s100b,
auc.polygon = TRUE,
auc.polygon.col=rgb(.35,0.31,0.61, alpha = 0.4),
auc.polygon.border=rgb(.35,0.31,0.61, 0.4))
右边的代码是:
plot(rock[,6] ~ rock[,7], xlim = rev(range(rock[,7])), type = 'l')
polygon(rock[,6] ~ rock[,7], xlim=rev(range(rock[,7])), col = 3)
segments(1,0,0,1, col=6)
... 和 rock
是一个数据框放在一起:
head(rock)
cut positive negative tru_pos tru_neg sens specif
[1,] 0.0000000 113 0 41 0 1.0000000 0.00000000
[2,] 0.1697713 112 1 40 0 0.9756098 0.00000000
[3,] 0.1767962 107 6 40 5 0.9756098 0.06944444
[4,] 0.1840474 104 9 40 8 0.9756098 0.11111111
[5,] 0.1915268 102 11 40 10 0.9756098 0.13888889
[6,] 0.1992360 93 20 37 16 0.9024390 0.22222222
如何让绿色填充对角线下方的下三角?如果可能的话,我可以偷偷提出第二个关于将左侧的 y 轴从 (-0.5, 0.5) 减少到 (0, 1) 的快速问题。
编辑:
在末尾添加一行零,我生成了这个:
还不错,但是对于右边距上的垂直蓝线...
您在调用 polygon
时遗漏了点 (0, 0)。
如果您在 ROC 数据上调用它,polygon
将通过连接曲线的第一个点和最后一个点来简单地闭合形状。它无法知道您希望它通过 (0, 0),因此您必须明确指定它,例如:
poly <- rbind(rock[,6:7], c(0,0))
polygon(poly, xlim=rev(range(rock[,7])), col = 3)