gpt4 book ai didi

r - 绘制大量线条的更好方法(也许在 ggplot 中)?

转载 作者:行者123 更新时间:2023-12-04 10:46:21 26 4
gpt4 key购买 nike

使用 R 3.0.2,我有一个看起来像的数据框

head()
0 5 10 15 30 60 120 180 240
YKL134C 0.08 -0.03 -0.74 -0.92 -0.80 -0.56 -0.54 -0.42 -0.48
YMR056C -0.33 -0.26 -0.56 -0.58 -0.97 -1.47 -1.31 -1.53 -1.55
YBR085W 0.55 3.33 4.11 3.47 2.16 2.19 2.01 2.09 1.55
YJR155W -0.44 -0.92 -0.27 0.75 0.28 0.45 0.45 0.38 0.51
YNL331C 0.42 0.01 -0.05 0.23 0.19 0.43 0.73 0.95 0.86
YOL165C -0.49 -0.46 -0.25 0.03 -0.26 -0.16 -0.12 -0.37 -0.34

其中row.names()是变量名,names()是测量时间,values是测量值。它有几千行深。我们称它为 tmp

我想做一个合理性检查,将每个变量作为时间与值绘制成一个图上的线图。有什么比天真地用 plot() 和 lines() 绘制每一行更好的方法:

timez <- names(tmp)
plot(x=timez, y=tmp[1,], type="l", ylim=c(-5,5))
for (i in 2:length(tmp[,1])) {
lines(x=timez,y=tmp[i,])
}

上面的粗略答案已经足够好了,但我正在寻找一种正确的方法。我最近脑震荡,如果我遗漏了一些明显的东西,我深表歉意。我经常这样做。

是否可以通过转置 data.frame 来观察数千个变量的每个时间点?或者以某种有意义的方式 melt()-ing data.frame?有没有办法使用 data.frames 的 aggregate()s 或其他东西在 ggplot 中处理它?这不是执行此操作的正确方法,对吗?

不知所措。

最佳答案

我个人更喜欢 ggplot2 来满足我所有的绘图需求。假设我理解正确,您可以使用 reshape2 以长格式放置数据,然后使用 ggplot2 在同一图上绘制所有线条:

library(reshape2)
df2<-melt(df,id.var="var")
names(df2)<-c("var","time","value")
df2$time<-as.numeric(substring(df2$time,2))

library(ggplot2)
ggplot(df2,aes(x=time,y=value,colour=var))+geom_line()

enter image description here

关于r - 绘制大量线条的更好方法(也许在 ggplot 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22290134/

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