gpt4 book ai didi

r - 根据ggplot中的组分配许多线条颜色

转载 作者:行者123 更新时间:2023-12-02 09:04:11 24 4
gpt4 key购买 nike

假设我有一些如下代码,生成一个包含大量行的线图(示例取自 here )

library(ggplot2)
library(reshape2)

n = 1000
set.seed(123)

mat = matrix(rnorm(n^2), ncol=n)
cmat = apply(mat, 2, cumsum)
cmat = t(cmat)
rownames(cmat) = paste("trial", seq(n), sep="")
colnames(cmat) = paste("time", seq(n), sep="")

dat = as.data.frame(cmat)
dat$trial = rownames(dat)
mdat = melt(dat, id.vars="trial")
mdat$time = as.numeric(gsub("time", "", mdat$variable))


p = ggplot(mdat, aes(x=time, y=value, group=trial)) +
theme_bw() +
theme(panel.grid=element_blank()) +
geom_line(size=0.2, alpha=0.1)

enter image description here

所以这里的“试验编号”是我的小组生产的所有这些产品线,有 1000 次试验。假设我现在想要“对我的分组变量进行分组” - 也就是说,我想在该图中看到完全相同的线,但我希望前 500 条试验线是一种颜色,而接下来的 500 条试验线是另一种颜色。我怎样才能用 ggplot 做到这一点?我已经研究了一段时间,但不知道如何手动设置每组的颜色。

最佳答案

添加一个变量,将数据分为两组,然后添加使用它来为 ggplot 中的线条着色

dat = as.data.frame(cmat)
dat$trial = rownames(dat)
dat$group = rep(c("a","b"), each = n/2)
mdat = melt(dat, id.vars=c("trial", "group"))
mdat$time = as.numeric(gsub("time", "", mdat$variable))


p = ggplot(mdat, aes(x=time, y=value, group=trial, color = group)) +
theme_bw() +
theme(panel.grid=element_blank()) +
geom_line(size=0.2, alpha=0.1)

关于r - 根据ggplot中的组分配许多线条颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60359399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com