2016-12-26 6 views
-1

次のコードは、時間に対するいくつかのモデルの予測確率をプロットしています。 1つのグラフのすべてのプロットは読み込みできませんでしたので、結果をグリッドで分割しました。ggplot:grid spaghettiプロットのよりコンパクトな使用

私はそれがすべてのモデルで唯一のggplotを持つことが可能であったならば、何とかgrid.arrange

現在でどこに行くかを指定思っていた

期待
p2.dat1 <- select(ppf, EXPOSURE, predp.glm.gen,predp.glm1, predp.glm2,predp.glm3,predp.glm4) 
mdf1 <- melt(p2.dat1 , id.vars="EXPOSURE") 
plm.plot.all1 <- ggplot(data = mdf1, 
              aes(x = EXPOSURE, y = value, colour = variable)) + 
              geom_line() 

p2.dat2 <- select(ppf, EXPOSURE, predp.glm.gen, predp.glm5,predp.glm.step) 
mdf2 <- melt(p2.dat2 , id.vars="EXPOSURE") 
plm.plot.all2 <- ggplot(data = mdf2, 
               aes(x = EXPOSURE, y = value, colour = variable)) + 
               geom_line() 

grid.arrange(plm.plot.all1, plm.plot.all2, nrow=2) 

p2.dat <- select(ppf, EXPOSURE, predp.glm.gen,predp.glm1, predp.glm2,predp.glm3,predp.glm4,predp.glm5,predp.glm.step) 
mdf <- melt(p2.dat , id.vars="EXPOSURE") 
plm.plot.all <- ggplot(data = mdf1, 
              aes(x = EXPOSURE, y = value, colour = variable)) + 
              geom_line() 

grid.arrange(plm.plot.all[some_selection_somehow], plm.plot.all[same], nrow=2) 

ありがとう、

+1

あなたは '' dput(ヘッド(PPF、20))を介して、あなたのデータのサンプルを投稿してもらえますか? –

+0

@Jakeここにあります:http://pastebin.com/28NUrmPG – jadWe

答えて

2

でこれを行うことができます210に何らかのヘルパー関数を記述することである。より簡潔に行うことができますが、私はパイプで使用することができる小さな焦点機能を好む。

enter image description here

か、ggplotでこれを行うことができ

library(tidyverse) 
library(gridExtra) 

# Helper Functions ---- 
plot_function <- function(x) { 

    ggplot(x, aes(x = EXPOSURE, y = value, colour = variable)) + 
    geom_line() + 
    labs(title = unique(x$variable)) + 
    theme(legend.position = "none") 
} 

grid_plot <- function(x, selection) { 

    order <- c(names(x)[grepl(selection,names(x))], names(x)[!grepl(selection,names(x))]) 

    grid.arrange(grobs = x[order], nrow = 2) 
} 

# Actually make the plot ---- 
ppf %>% 
    select(EXPOSURE, predp.glm.gen,predp.glm1, predp.glm2,predp.glm3,predp.glm4,predp.glm5,predp.glm.step) %>% 
    gather(variable, value, -EXPOSURE) %>% 
    split(.$variable) %>% 
    map(plot_function) %>% 
    grid_plot("predp.glm3") 

facet_wrap、適切な順序に変数の列を因数分解。これには、プロット間で軸を共有する利点があり、簡単な比較が容易になります。最初のアプローチでヘルパー関数を変更して、軸を明示的に設定して同じ効果を達成することができますが、それはちょうど ggplotの方が簡単です。

library(tidyverse) 

selection <- "predp.glm3" 

plot_data <- ppf %>% 
    select(EXPOSURE, predp.glm.gen,predp.glm1, predp.glm2,predp.glm3,predp.glm4,predp.glm5,predp.glm.step) %>% 
    gather(variable, value, -EXPOSURE) %>% 
    mutate(variable = fct_relevel(variable, c(selection, levels(variable)[-grepl(selection, levels(variable))]))) 

ggplot(plot_data, aes(x = EXPOSURE, y = value, colour = variable)) + 
    geom_line() + 
    facet_wrap(~variable, nrow = 2) + 
    theme(legend.position = "none") 

enter image description here

+0

私はあなたの答えを見たことがないことを実感しました。それは確かに私が探していたファセットラップでした。ありがとう...本当に遅い。しかし、ありがとう。 – jadWe

関連する問題