2017-07-17 6 views
1

私は、さまざまなデータフレームのリストにある非常に長いデータのファセットグリッドプロットを作成したいと思います。ここではいくつかのサンプルデータは、次のとおりです。リスト内の巨大なデータのファセットグリッド

library(tidyverse) 
library(ggplot2) 

L <- list() 
for (i in 1:10) { 
    DATE <- seq(as.POSIXct("2016-01-01 21:00:00", tz="UTC"), 
      as.POSIXct("2016-02-01 21:00:00", tz="UTC"), 
      by = 600 
      ) 

    V1 <- round(runif(length(DATE)) - 0.3,0) 
    L[[i]] <- tibble(DATE, V1) 
} 

names(L) <- LETTERS[1:10] 

私はacctually V1を示す1行の各データフレームとfacet_grid()である必要がありますどのようなバーコードまたは類似のもののように、1または0のいずれかです。 私の唯一の成功は、すべてのリスト要素を1つのデータフレームにバインドし、各リスト要素の名前を新しい列としてバインドすることでした。これは一種のようです。

for (i in 1:10) { 
    L[[i]] <- mutate(L[[i]], list.name = names(L)[i]) 
} 

DF <- do.call(rbind.data.frame, L) 

ggplot(DF) + 
    geom_step(aes(DATE, V1), size = 0.1,) + 
    facet_grid(list.name ~ .) 

Takes a long time and is not filled

私はそれは(私は例で見ることは困難である知っている)geom_area()であるように満たされたgeom_step()プロットのdownsiteを持っていると思います。もっと良いギョームがありますか?私のデータは時間がかかりますので、プロットを作成するには数時間かかることがあります。リスト要素に対してfacet_grid()を作成するより良い方法はありますか?

答えて

3

geom_rasterはどうですか?

DF <- map_df(L, I) %>% mutate(V1 = as.factor(V1)) 

ggplot(DF, aes(x = DATE, y = list.name, fill = V1)) + 
    geom_raster() + 
    scale_fill_manual(values = c("white", "black")) 
+0

こんにちは、ありがとうございます!私はgeom_rasterを知らなかった。入力データの上限はありますか?サンプルデータを5年に延長すると、私はいつも空のグラフになります。 – Pelle

+0

おそらく、細胞は非常に薄くなっているため表示できません。プロットを広げると、データを集約することができます。たぶん月ごとのイベントですか? –

+0

はい、これはおそらく行く方法です。どうもありがとう! – Pelle

関連する問題