繁体   English   中英

如何在R中绘制一列与其余列

[英]How to plot one column vs the rest in R

我有一个数据集,其中[,1]是时间,然后下一个14是幅度。 我想在一张图上散布所有幅度与时间的关系图,其中每个不同的列都被网格化(彼此叠加)

我想使用原始数据制作这些图形,并分别制作它们,但只需要执行一次此过程。

称为A的数据集,唯一的独立变量是时间(第一列)

df<-data.frame(time=A[,1],V11=A[,2],V08=A[,3],
 V21=A[,4],V04=A[,5],V22=A[,6],V23=A[,7],
 V24=A[,8],V25=A[,9],V07=A[,10],xxx=A[,11],
 V26=A[,12],PV2=A[,13],V27=A[,14],V28=A[,15],
 NV1=A[,16])

我尝试了@VlooO提到的代码,但是它压缩了图形,使它们难以解读,并且每个图形都有自己的轴。 我所有的图形都可以在同一根轴上,只是标题分开。

在查看ggplots时,我认为这将是我想要的完美程序。

ggplot(data=df.melt,aes(x=time,y=???))

由于我要引用每个不同的列,我感到困惑。

谢谢R社区

希望我能正确理解你:

df<-data.frame(time=rnorm(10),A=rnorm(10),B=rnorm(10),C=rnorm(10))

par(mfrow=c(length(df)-1,1))
sapply(2:length(df), function(x){
  plot(df[,c(1,x)])
})

结果将是

绘图

这里有一些提示,因为您没有提供可复制的示例,也没有显示您尝试过的方法:

  1. 使用list.files浏览所有文档
  2. 使用lapply遍历上一步的结果并读取数据
  3. 把你的数据在使用长格式meltreshape2和可变时间为ID。
  4. 使用ggplot2将变量用作aes颜色/组进行绘图。

     library(ggplot2) library(reshape2) invisible(lapply(list.files(pattern=...),{ dt = read.table(x) dt.l = melt(dt,id.vars='time') print(ggplot(dt.l)+geom_line(aes(x=time,y=value,color=variable)) })) 

如果不需要ggplot2,则可以使用基本图形的matplot函数在一个命令中执行所需的操作。

解决方案:在研究了更多问题并使用ggplot2进行了更多尝试之后,我发现了一个可以正常工作的代码。 制作完数据框(如上所述)后,这就是我所做的

> df.m<- melt(df,"time")
ggplot(df.m, aes(time, value, colour = variable)) + geom_line() +
+ facet_wrap(~ variable, ncol = 2)

我会发布图片,但是我的信誉点还不够。

我仍然不太明白为什么aes(time,value,...)中的“ value”放在y位置,如果有人可以提供一个解释,将不胜感激。 我的最后一个问题是,是否有人知道如何缩小子图标题。

我可以在ggplot2中使用cex.lab =,cex.main =吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM