我想在一张图中绘制100个与100个数据系列相对应的图形。更准确地说,我有一个包含100个元素的列表(名称:ROC.df
),其中每个元素都是一个数据帧(名称:df
),其中包括两列POD
和{{1} }。我想在一个绘图中以不同的颜色绘制所有100个图形。我试图循环更改ggplot中的POFD
参数:
data
该代码不起作用。
这是每个ggplot() +
for (i in 1:100) {
df <- ROC.df[[i]][["df"]]
RGB <- c("R" = runif(1, 0.0, 1.0), "G" = runif(1, 0.0, 1.0), "B" = runif(1, 0.0, 1.0))
geom_line(data = df,
mapping = aes(x = POFD, y = POD), color = rgb(RGB["R"], RGB["G"], RGB["B"]), alpha=0.5, size = 1) +
geom_point(data = df,
mapping = aes(x = POFD, y = POD), color = rgb(RGB["R"], RGB["G"], RGB["B"]), alpha=0.5, size=4)
}
+ theme_bw() + theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"))
的样子:(以下内容对应于df
):
ROC.df[[1]][["df"]]
我搜索了一下,发现建议使用 POFD POD
1 0.00000000 0.1666667
2 0.01449275 0.1666667
3 0.02898551 0.1666667
4 0.02898551 0.3333333
5 0.04347826 0.3333333
6 0.05797101 0.3333333
7 0.07246377 0.3333333
8 0.08695652 0.3333333
9 0.08695652 0.5000000
10 0.10144928 0.5000000
11 0.10144928 0.6666667
12 0.10144928 0.8333333
13 0.11594203 0.8333333
14 0.13043478 0.8333333
15 0.14492754 0.8333333
16 0.15942029 0.8333333
17 0.31884058 0.8333333
18 0.33333333 0.8333333
19 0.34782609 0.8333333
20 0.34782609 1.0000000
21 0.40579710 1.0000000
22 0.42028986 1.0000000
23 0.43478261 1.0000000
24 0.44927536 1.0000000
25 0.46376812 1.0000000
包中的melt
函数合并所有数据。我尝试过,但没有实现。预先感谢您的帮助。
答案 0 :(得分:1)
代替使用100层,您可以行绑定列表中的所有data.frames,并使用col
参数应用不同的颜色。
下面是一个列表中有10个随机数据帧的示例:
library(dplyr)
library(ggplot2)
# Create list of data frames
list_of_dfs <- data.frame(POD = rep(1:10, 10) + rnorm(100),
POFD = rep(5:14, 10) + rnorm(100),
group = factor(LETTERS[rep(1:10, each = 10)])) %>%
split(rep(1:10, each = 10))
# Bind data frames
df <- bind_rows(list_of_dfs)
# Create plot
ggplot(df) +
geom_line(aes(x = POD, y = POFD, col = group)) +
theme_bw() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"))