You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ggroc绘制的ROC曲线置于45度线与边框图层之上?

解决方案

要让45度线和外框置于ROC曲线后方,核心是调整ggplot的图层顺序——背景元素先绘制,ROC曲线后绘制(后添加的图层会覆盖在先的图层)。同时需要修正legacy.axes参数的位置(它是ggroc的专属参数,不能放在scale_color_manual中)。

修改后的代码如下:

# 先创建空的ggplot基础层,依次添加背景元素
ggplot() +
  # 添加外框矩形(最底层)
  geom_rect(
    aes(xmin = 0, xmax = 1, ymin = 0, ymax = 1),
    color = "grey", fill = NA) +
  # 添加45度虚线(在矩形之上、曲线之下)
  geom_segment(
    aes(x = 0, xend = 1, y = 0, yend = 1),
    linetype = "dashed",
    color = "grey") +
  # 绘制ROC曲线(最上层),传入legacy.axes参数
  ggroc(list(roc1, roc2, roc3), legacy.axes = TRUE) +
  # 设置曲线颜色
  scale_color_manual(
    values = c("red", "blue", "yellow"))

关键说明:

  • 图层顺序逻辑:ggplot按代码书写顺序叠加图层,先写的元素在底层,后写的在顶层。因此先绘制矩形和虚线,再绘制ROC曲线,就能保证曲线完全显示在背景元素之上,不会被遮挡。
  • 参数修正:legacy.axes用于控制ROC曲线的坐标轴方向(模拟传统ROC图的刻度),必须作为ggroc的参数传入,否则无法生效。
  • 样式扩展:如果需要调整线条粗细、透明度,可在geom_rect或geom_segment中添加size、alpha等参数。

内容的提问来源于stack exchange,提问作者Tim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 22:57:08