如何更改 ggroc 函数的图例描述?

How to change legend description on ggroc function?

我正在尝试将多个 ROC 值合并到一张图中,到目前为止我已经设法做到了。但是,我很难改变图例。

roc.list <- list(roc_obj,roc_objL,roc_objR)

ggroc(roc.list, aes = c("linetype"),legacy.axes = TRUE) + 
              labs(x = "1 - Specificity", y = "Sensitivity") + theme_classic() +geom_abline()

ROC Curve

我无法更改 "main" 和“1”、“2”、“3”。

我尝试添加

labs(x = "1 - Specificity", y = "Sensitivity", fill = c("Mean Gonial", "Gonial Angle Left","Gonial Angle Right")) + theme_classic() +geom_abline()

我希望输出图像图例主标题为 "Gonial Angle Measurement" 和 "Mean Gonial Angle"、"Gonial Angle Left"、"Gonial Angle Right" 分别为 1、2 和 3 个图例。

谢谢

您可以使用 ggtitle 添加标题,然后稍微调整一下您的曲线列表以完成剩下的工作:

library(pROC)
library(ggplot2)

# Create a basic roc object
data(aSAH)
rocobj1 <- roc(aSAH$outcome, aSAH$s100b)
rocobj2 <- roc(aSAH$outcome, aSAH$wfns)
rocobj3 <- roc(aSAH$outcome, aSAH$ndka)
roclist <- list("First ROC" = rocobj1,
                "Second ROC" = rocobj2,
                "Third ROC" = rocobj3)

g <- ggroc(roclist, aes = "linetype", legacy.axes = TRUE) +
  geom_abline() +
  theme_classic() +
  ggtitle("The new title") +
  labs(x = "1 - Specificity",
       y = "Sensitivity",
       linetype = "Different legend title")
g

第一次在这里回答。 您可以 (1) 以您想要的方式命名列表元素或 (2) add

scale_linetype_discrete(labels=c("Mean Gonial","Gonial Angle Left","Gonial Angle Right"))

对于图例标题,您需要解决正确的图例。在你的情况下是线型,而不是填充。

labs(x = "1 - Specificity", y = "Sensitivity", linetype="Gonial Angle Measurement"))

我认为这段代码会对你有所帮助

library(pROC)
library(ggplot2)

roc.list <- roc(outcome ~ s100b + ndka + wfns, data = aSAH)
g.list <- ggroc(roc.list)

ggroc(roc.list, aes = c("linetype"), legacy.axes = TRUE)+ 
  labs(x = "1 - Specificity", y = "Sensitivity", linetype="Gonial Angle Measurement") + 
  scale_linetype_discrete(labels=c("Mean Gonial","Gonial Angle Left","Gonial Angle Right"))+
  theme_classic() +
  geom_abline()