簡體   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