1

常にレベル X、Y、または Z にある 3 つのプロセス A、B、および C を監視しています。プロセスがレベル​​を変更すると、プロトコルが記録されます。

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 の間の連続した間隔と、表示された時間の現在のプロセス レベルを示す同じ幅の 3 つの水平バー (A、B、C) を表示したいと思います。 x軸上。

最後に試したものの下。グラフの全体的な構造は正しいように見えますが、時間軸はあまり意味がなく、データも欠落しています。(オフ カテゴリは必要ありませんが、時間軸が理解できれば簡単に切り捨てることができます。) ガイダンスをいただければ幸いです。

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

ここに画像の説明を入力

4

1 に答える 1

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"))

ここに画像の説明を入力してください

于 2013-01-10T17:18:21.140 に答える