【发布时间】:2017-10-14 17:45:52
【问题描述】:
我研究了这个问题,但所有技巧都在这里失败了。我正在尝试在 ggplot 中构建 ROC 曲线。不同的机器学习模型返回不同长度的观察向量。我的目标是将它们收集在一个情节中,着色并放置图例。
当您的所有数据都具有相同的 X 轴长度 -(观察次数)时,这很容易。所有 x 和 y 都在 [0 到 1] 的范围内。问题是不同数量的观察。我想避免将向量插值和强制到相同的长度,因为每个观察值都带有重要信息。
到目前为止,我发现最好的方法是在同一个图上放置新的线层。
也许其他类型的情节?或来自其他软件包的专门地块。
请帮忙。谢谢!
ggplot(vector_1, aes(x, y ) ) + geom_line() + ???? new layers ???
这里是 vector1 - 34 个观察值:
vector_1_x:
0 0.02325581 0.02325581 0.04651163 0.04651163 0.06976744 0.09302326 0.11627907 0.13953488 0.1627907 0.18604651 0.20930233 0.23255814 0.25581395 0.27906977 0.30232558 0.3255814 0.37209302 0.39534884 0.41860465 0.44186047 0.46511628 0.48837209 0.51162791 0.53488372 0.62790698 0.65116279 0.74418605 0.76744186 0.86046512 0.90697674 0.93023256 0.97674419 1
vector_1_y:
0 0 0.1666667 0.1666667 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.5 0.5 0.5 0.6666667 0.6666667 0.6666667 0.6666667 0.6666667 0.6666667 0.6666667 0.8333333 0.8333333 0.8333333 1 1 1 1 1
这里是 vector2 - 50 个观察值:
vector_2_x:
0 0 0.02325581 0.04651163 0.04651163 0.06976744 0.09302326 0.11627907 0.13953488 0.1627907 0.18604651 0.20930233 0.23255814 0.25581395 0.25581395 0.27906977 0.30232558 0.3255814 0.34883721 0.37209302 0.39534884 0.39534884 0.41860465 0.44186047 0.46511628 0.48837209 0.51162791 0.51162791 0.53488372 0.55813953 0.58139535 0.60465116 0.62790698 0.65116279 0.65116279 0.6744186 0.69767442 0.72093023 0.74418605 0.76744186 0.79069767 0.81395349 0.8372093 0.86046512 0.88372093 0.90697674 0.93023256 0.95348837 0.97674419 1
vector_2_x:
0 0.1666667 0.1666667 0.1666667 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.3333333 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.6666667 0.6666667 0.6666667 0.6666667 0.6666667 0.6666667 0.8333333 0.8333333 0.8333333 0.8333333 0.8333333 0.8333333 0.8333333 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
【问题讨论】:
-
编辑您的帖子并粘贴
dput(your.df.name)的结果,您将获得更多有用的帮助。 -
dat <- data.frame(x = c(vector_1_x, vector_2_x), y = c(vector_1_y, vector_2_y), name = rep(c('1','2'), each = c(length(vector_1_x), length(vector_2_x))), stringsAsFactors = F); ggplot(dat, aes(x = x, y = y, colour = name))+geom_line()