2016-09-14 203 views
-1

我有一個數據框(見下文),其中有幾行比通過Fly列標記的每行都多(每個都是唯一的),並且每條線都通過條件欄。每條線都有四個與其在不同時間拍攝的測量值相關聯。我想將X上的音量繪製爲音量,將Y繪製爲時間。並通過Fly下的獨特線條進行顏色編碼。有沒有一個快速簡單的方法來做到這一點?不知道如何讓它工作,或者開始使用ggplot2()甚至plot()。一些幫助和指導,將不勝感激。如何使用繪圖或ggplot2在R中快速繪製多條線

 Fly condition_1 volume_1 volume_2 volume_3 volume_4 
1  1 postcont  1.6  18.0  8.1  13.5 
2  2 postcont  0.0  12.0  10.1  8.5 
3  3 postcont  2.6  3.0  10.1  1.5 
4  4 postcont  13.6  13.0  10.1  15.5 

下面是代碼最多繪製

data1<-read.table(file=file.choose(),header=T) 
head(data1) 
postcontexp<-subset(data1, condition_1 == "postcont") 
postcontexpVOL<- subset(# to remove unwanted columns) 
postcontexpVOL<- na.omit(postcontexpVOL) 
+2

對不起,這不是要求在基礎上定製教程的好地方繪圖功能。如果您[查看R標記wiki](http://stackoverflow.com/tags/r/info),有許多免費資源可供您開始使用R.您還可以在Stack Overflow上搜索其他問題。如[R在一個圖上繪製多條線](http://stackoverflow.com/q/17150183/903061)。 – Gregor

+1

您的數據不整潔,這使得繪圖變得困難,因爲如果您沒有時間變量,因爲很難繪製時間,因爲該信息被困在列名中。首先重塑,例如庫(tidyverse); df%>%gather(time,volume,starts_with('volume'))%> mutate(time = parse_number(time))' – alistaire

+0

@ Gregor,我理解繪圖的幾個基本知識。我只是不想使用abline()一些次數。 – multiverse

回答

0

下面是一個使用meltreshape2dplyr以適應調整數據版本:

n <- 4 
df <- 
    data.frame(
    Ind = 1:n 
    , vol_1 = rnorm(n) 
    , vol_2 = rnorm(n) 
    , vol_3 = rnorm(n) 
    , vol_4 = rnorm(n) 
) 


melted <- 
    melt(df, id.vars = "Ind") %>% 
    mutate(Time = as.numeric(gsub("vol_","",variable))) 

ggplot(melted 
     , aes(x = Time 
      , y = value 
      , col = as.factor(Ind))) + 
    geom_line() 

enter image description here