R ggplot:数据帧源上的循环
我想在一个绘图中绘制100个对应于100个数据系列的图形。更准确地说,我有一个包含100个元素的列表(名称:R ggplot:数据帧源上的循环,r,ggplot2,melt,R,Ggplot2,Melt,我想在一个绘图中绘制100个对应于100个数据系列的图形。更准确地说,我有一个包含100个元素的列表(名称:ROC.df),其中每个元素都是一个数据帧(名称:df),包括两列POD和POFD。我想在一个单独的绘图中以不同的颜色绘制所有100个图形。我试图在循环中更改ggplot中的数据参数: ggplot() + for (i in 1:100) { df <- ROC.df[[i]][["df"]] RGB <- c("R" = runif(1, 0
ROC.df
),其中每个元素都是一个数据帧(名称:df
),包括两列POD
和POFD
。我想在一个单独的绘图中以不同的颜色绘制所有100个图形。我试图在循环中更改ggplot中的数据参数:
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"))
我搜索了一下,发现建议使用reformae2
包中的melt
函数合并所有数据。我试过了,但没有成功。提前感谢您的帮助。您可以使用行绑定列表中的所有data.frames,而不是使用100层,并使用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"))
库(dplyr)
图书馆(GG2)
#创建数据帧列表
列出\u中的\u dfs%
拆分(重复(1:10,每个=10))
#绑定数据帧
df@Parfait I在split()之前也使用了它的管道操作符%>%
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"))