私はRに精通していません。データを整理するのに少し時間がかかります。次のように私のデータセットは(typeof演算(MDATA)がリストを返す)になります。複数の列を同じグラフにプロットするR
key_as_string key doc_count colA colB types.buckets
2017-01-30T13:33:30.000+01:00 1.485780e+12 28 0 0 type1, type2, type3, 18, 5, 5
2017-01-30T13:34:00.000+01:00 1.485780e+12 175 0 0 type2, type1, type3, type4, 138, 19, 17, 1
...
私はつまり、私はx軸はタイムスタンプが含まれているグラフを持っているしたいのですが、時間をかけて、カウントをプロットしたいのですが(POSIXとして)、 y軸は、タイプごとに1つの色でカウントされます(doc_count列の場合+1)。私は、データを溶融するために持っていますが、すべての例は、(好ましくはデータフレームのように)このような簡単な形式を使用言って答えの多くが見つかりました:
timestamp(as POSIX) doc_count type1 type2 ... type n
2017-01-30T13:33:30.000+01:00 28 18 5 ...
2017-01-30T13:34:00.000+01:00 175 19 138 ...
...
問題、すなわち、mData[["types"]][["buckets"]][[x]][[1]]
はasysmmetricデータが含まれていることですが、私はしないでください行ごとに型と量の量がどのようになっているかを知っている(順序は描画には重要ではない)。その場合、それぞれの列に0を追加したいと思います。
mData
を上記のような形式に変換してプロットするにはどうすればよいですか?それは私が失われたところです。ここで
はresult[["types"]][["buckets"]]
のサンプル出力です:
[[1]]
key doc_count
1 type1 18
2 type2 5
3 type3 5
[[2]]
key doc_count
1 type2 138
2 type1 19
3 type3 17
4 type4 1
時間をかけてちょうど総doc_countが正常に動作プロット:
dates <- as.POSIXct(mData[["key"]]/1000,origin="1970-01-01")
# returns NA. Problably because it doesn't match the seconds. How do I parse it correctly?
#dates <- as.POSIXct(mData[["key_as_string"]],format="%Y-%m-%dT%H:%M:%S+01:00 CET",tz="Europe/Paris")
mDf <- data.frame(date=dates,doc_count=mData[[3]])
ggplot(mDf,aes(date,doc_count))+geom_line(colour=sample(1:255255255, 1))+xlab("")+ylab("Events")+
scale_x_datetime(date_breaks="24 hours",date_labels = "%d.%m.%Y %H:%M:%S")+
theme(axis.title=element_text(size=24,face="bold"), axis.text.y = element_text(angle=90, hjust=0.5))+geom_area(fill=sample(1:255255255, 1))
EDIT:
を。これは、サンプルをrepruduce必要がありますのデータ:
structure(list(key_as_string = c("2017-01-30T13:33:30.000+01:00",
"2017-01-30T13:34:00.000+01:00", "2017-01-30T13:34:30.000+01:00",
"2017-01-30T13:35:00.000+01:00", "2017-01-30T13:35:30.000+01:00",
"2017-01-30T13:36:00.000+01:00"), key = c(1485779610000, 1485779640000,
1485779670000, 1485779700000, 1485779730000, 1485779760000),
doc_count = c(28L, 175L, 122L, 526L, 160L, 1306L), types = structure(list(
colA = c(0L, 0L, 0L, 0L, 0L, 0L
), colB = c(0L, 0L, 0L, 0L, 0L, 0L), buckets = list(
structure(list(key = c("type1", "type2", "type3"
), doc_count = c(18L, 5L, 5L)), .Names = c("key",
"doc_count"), class = "data.frame", row.names = c(NA,
3L)), structure(list(key = c("type2", "type1",
"type3", "type4"), doc_count = c(138L, 19L, 17L,
1L)), .Names = c("key", "doc_count"), class = "data.frame", row.names = c(NA,
4L)), structure(list(key = c("type2", "type1",
"type3"), doc_count = c(60L, 42L, 20L)), .Names = c("key",
"doc_count"), class = "data.frame", row.names = c(NA,
3L)), structure(list(key = c("type1", "type2",
"type3", "type4"), doc_count = c(379L, 128L,
18L, 1L)), .Names = c("key", "doc_count"), class = "data.frame", row.names = c(NA,
4L)), structure(list(key = c("type2", "type3",
"type1"), doc_count = c(87L, 61L, 12L)), .Names = c("key",
"doc_count"), class = "data.frame", row.names = c(NA,
3L)), structure(list(key = c("type1", "type2",
"type3", "type4"), doc_count = c(1139L, 146L,
20L, 1L)), .Names = c("key", "doc_count"), class = "data.frame", row.names = c(NA,
4L)))), .Names = c("colA",
"colB", "buckets"), row.names = c(NA, 6L), class = "data.frame")), .Names = c("key_as_string",
"key", "doc_count", "types"), row.names = c(NA, 6L), class = "data.frame")
こちらをご覧良い再現性の例を提供しますhttp://stackoverflow.com/questions/5963269/how-to-make-a-great- r-reproducible-example – Koundy