【问题标题】:R ggplot2: create data frame for multiple ROC plots with different line lengthsR ggplot2:为具有不同线长的多个 ROC 图创建数据框
【发布时间】:2018-07-02 15:21:52
【问题描述】:

如果有更简单的方法,我会尝试覆盖 ROCR 包中 4 个不同“性能”对象的图。要点是这些对象中的每一个都包含两个长度相等的向量,一个用于 X 值,一个用于 Y 值,但是对象之间的 X/Y 向量的长度不同。

目前我只是使用 plot() 和 lines() 手动提取和绘制这些曲线,以创建:

这并不可怕,但我认为使用 ggplot 可以更好地控制。唯一的问题是我想不出用 ggplot 从这些向量创建 data.frame() 的方法。

【问题讨论】:

  • rbind 有什么问题?制作单独的数据框,用新的因子列和 rbind 标记。
  • 当你说你的 ROC 图有“不同的线长”时,我认为你的意思是“不同的 y 轴限制”。向我们发布生成它们的命令,并尝试明确设置 y 限制或比例。
  • @smci y 轴限制对于每个 ROC 图都相同,对吧?从0到1?当我说不同的线长时,我的意思是向量对于每个线对象有不同数量的元素。即第 1 次迭代是 500 个样本,第 2 次迭代是 950 个样本,等等。但所有线条都适合相同的比例。

标签: r plot ggplot2 roc


【解决方案1】:

ggplot 更喜欢长格式的数据,因此不同行的不同长度无关紧要。

结构非常简单 - 您有一列定义行 iteration,在您的情况下,其值为 1、2、3 或 4(可能将这一列设为 factor);一列给出x,一列给出y

由于您没有提供任何代码或示例数据,我认为这就是您正在寻找的答案。您可以在单个向量上使用 c() 或在单个数据帧上使用 rbind() 来组合它们。或dplyr::bind_rowsdata.table::rbindlist() 对数据帧列表进行操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-14
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多