[英]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)])
})
結果將是
這里有一些提示,因為您沒有提供可復制的示例,也沒有顯示您嘗試過的方法:
list.files
瀏覽所有文檔 lapply
遍歷上一步的結果並讀取數據 melt
從reshape2
和可變時間為ID。 使用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.