【问题标题】:R ggplot add new roc curveR ggplot 添加新的 roc 曲线
【发布时间】:2016-05-17 11:27:57
【问题描述】:

我想在 ggplot 图表中添加 ROC 曲线,但它返回错误 代码。

  library(ggplot2)
  library(plotROC)

  set.seed(2529)
  D.ex <- rbinom(200, size = 1, prob = .5)
  M1 <- rnorm(200, mean = D.ex, sd = .65)
  M2 <- rnorm(200, mean = D.ex, sd = 1.5)

  test <- data.frame(D = D.ex, D.str = c("Healthy", "Ill")[D.ex + 1], 
                     M1 = M1, M2 = M2, stringsAsFactors = FALSE)
  plot<-ggplot(longtest, aes(d = D, m = M1 )) + geom_roc() + style_roc()
  plot

没问题,但如果我添加新的 ROC 行,则返回错误

plot<-ggplot(longtest, aes(d = D, m = M1 )) + geom_roc() + style_roc()
plot+ggplot(test, aes(d = D, m = M2)) + geom_roc()

p + o 中的错误:二元运算符的非数字参数另外: 警告消息:不兼容的方法(“+.gg”、“Ops.data.frame”) “+”

如何添加新线并为所有线添加不同颜色,并添加图例

【问题讨论】:

    标签: r ggplot2 roc


    【解决方案1】:

    将数据框从宽格式转换为长格式,然后将变量名称映射到美学映射中的线条颜色:

    ggplot(melt_roc(test, "D", c("M1", "M2")), 
           aes(d = D, m = M, color = name)) + 
        geom_roc() + 
        style_roc()
    


    如果你愿意,你也可以这样做:

    ggplot() + 
      geom_roc(aes(d = D, m = M1, color="roc1"), test) + 
      geom_roc(aes(d = D, m = M2, color="roc2"), test) + 
      scale_color_manual(values=c("roc1"="red", "roc2"="blue"), 
                         name="color legend", guide="legend") + 
      style_roc()
    

    【讨论】:

    • 不,我需要添加一行,因为我的数据存储在不同的 data.frame 中它唯一的例子是我有 N 个 data.frame。怎么能这样?
    • 不,你(可能)不这样做,因为你可以将这些数据框组合成一个,并用一个因子变量标记每个,这将是你的 ggplot 中的颜色变量。
    • 我无法合并数据/帧,因为它非常大,我如何添加行?没有绑定data.frame
    • 可能存在我可以添加行的替代库?
    • 如果你真的想要,你也可以用单独的geom_roc 调用来绘制两条线。查看我的编辑。
    猜你喜欢
    • 2016-11-06
    • 2014-08-09
    • 2019-02-27
    • 2017-11-06
    • 2012-07-10
    • 2013-09-28
    • 1970-01-01
    • 2016-08-06
    • 2015-08-29
    相关资源
    最近更新 更多