2015-11-05 124 views
3

是否有創建柱狀圖的方式,其中柱狀圖的寬度與數據表示的時間段相關?柱狀圖:基於時間的柱狀圖寬度 - R

df <-read.table(file="x.txt", header=T, sep="\t", dec=".", na="NA") 

> df 
      Date_Time   Date_End data 
1 3/23/2015 00:00:00 4/1/2015 23:59:59 0.00 
2 4/2/2015 00:00:00 4/14/2015 23:59:59 -34.67 
3 4/15/2015 00:00:00 4/20/2015 23:59:59 -4.44 
4 4/21/2015 00:00:00 4/24/2015 23:59:59 14.45 
5 4/25/2015 00:00:00 5/5/2015 23:59:59 -8.67 
6 5/6/2015 00:00:00 5/12/2015 23:59:59 -86.68 
7 5/13/2015 00:00:00 5/19/2015 23:59:59 -8.68 
8 5/20/2015 00:00:00 5/26/2015 23:59:59 -24.41 
9 5/27/2015 00:00:00 6/2/2015 23:59:59 20.46 
10 6/3/2015 00:00:00 6/9/2015 23:59:59 31.07 
11 6/10/2015 00:00:00 6/16/2015 23:59:59 58.45 
12 6/17/2015 00:00:00 6/23/2015 23:59:59 0.62 
13 6/24/2015 00:00:00 6/26/2015 23:59:59 -92.45 

我想數據被繪製爲條形圖,與條寬度從Date_TimeDate_End

回答

1

barplot有一個width參數。在下面的代碼中,我添加了一個時間差列,這將是條的寬度。從開始到結束的時間差越長,條形圖越大。

df <-read.table(text="Row_name Date_Time Date_End data 
1 3/23/2015-00:00:00 4/1/2015-23:59:59 0.00 
2 4/2/2015-00:00:00 4/14/2015-23:59:59 -34.67 
3 4/15/2015-00:00:00 4/20/2015-23:59:59 -4.44 
4 4/21/2015-00:00:00 4/24/2015-23:59:59 14.45 
5 4/25/2015-00:00:00 5/5/2015-23:59:59 -8.67 
6 5/6/2015-00:00:00 5/12/2015-23:59:59 -86.68 
7 5/13/2015-00:00:00 5/19/2015-23:59:59 -8.68 
8 5/20/2015-00:00:00 5/26/2015-23:59:59 -24.41 
9 5/27/2015-00:00:00 6/2/2015-23:59:59 20.46 
10 6/3/2015-00:00:00 6/9/2015-23:59:59 31.07 
11 6/10/2015-00:00:00 6/16/2015-23:59:59 58.45 
12 6/17/2015-00:00:00 6/23/2015-23:59:59 0.62 
13 6/24/2015-00:00:00 6/26/2015-23:59:59 -92.45", header=T,stringsAsFactors =F) 

df[[2]] <- strptime(df[[2]], "%m/%d/%Y-%H:%M:%S") 
df[[3]] <- strptime(df[[3]], "%m/%d/%Y-%H:%M:%S") 
df$difference <-as.numeric(df[[3]]-df[[2]]) 

barplot(df$data, width=df$difference) 

enter image description here

+0

謝謝!快速刪除條之間的空格? – squishy

+1

barplot(df $ data,width = df $ difference,space = 0)將起作用。 –