2013-01-10 124 views
1

我們正在監視3個過程A,B和C,這些過程始終處於級別X,Y或Z.協議記錄過程更改級別時的情況。連續時間軸爲x軸的堆積條形圖

df = read.csv(tc <- textConnection('Time1,Process1,Level1 
2013-01-09 18:00:34,A,X 
2013-01-09 18:00:34,B,Y 
2013-01-09 18:00:34,C,X 
2013-01-09 18:00:59,A,Z 
2013-01-09 18:01:06,A,X 
2013-01-09 18:01:10,C,Y 
2013-01-09 18:01:10,B,Z 
2013-01-09 18:01:13,A,Z 
2013-01-09 18:01:18,A,Off 
2013-01-09 18:01:18,B,Off 
2013-01-09 18:01:18,C,Off 
'),header=TRUE) 
close.connection(tc) 
df$Time1 = as.POSIXct(df$Time1) 

監測從18:00:34開始,並在18:01:18關閉。在18:00:34和18:00:59之間進程A處於X級,在18:00:59和18:01:06之間進程A處於Z級。

我們想在x軸是18:00:34和18:01:18之間的連續間隔,以及三個寬度相等的水平條(A,B,C),它們表示X軸上顯示的當前進程級別。

低於我們最後一次嘗試。圖表的總體結構看起來不錯,但時間軸沒有多大意義,數據也不見了。 (我們不需要關閉類別,但一旦時間軸有意義就很容易將其切斷。)任何指導都將非常感激。

ggplot() + 
    geom_bar(data=df, aes(x=Process1, y=Time1, fill=Level1)) + 
    coord_flip() 

enter image description here

回答

2

我不知道如何使用geom_bar要做到這一點,但我可以得到geom_line做同樣的事情,如果我增加了線條的大小。

library(ggplot2) 
library(scales) 
ggplot(df, aes(x=Time1, y=Process1, group=Process1, colour=Level1)) + 
    geom_line(size=5) + scale_x_datetime("", labels = date_format("%H:%M:%S")) 

enter image description here

+0

美觀那麼簡單。缺點是現在兩個「酒吧」之間的垂直空間似乎取決於圖表高度。雖然我們可以生活在那裏 –

相關問題