2012-11-25 9 views
5

私は美しいggplotに結果をプロットするためにいくつかのシミュレーションを実行していますが、ggplotはリストオブジェクトを処理できないようです。 ggplotグラフに結果を貼り付ける方法を知っている人はいますか?ggplotを使用してリストオブジェクトをプロットする

N <- 8619170   
    nn <- c(1000, 1200, 3000) 
    p <- .27  
    nsim <- 100 

    phat <- list() 
    for (i in 1:length(nn)) { 
    n <- nn[i] 
    x <- rhyper(nsim, N * p, N * (1 - p), n) 
    phat[[i]] <- x/n 
    } 

醜いソリューション:

names(phat) <- paste("n=", nn) 
    stripchart(phat, method="stack") 
    abline(v=p, lty=2, col="red") 
+0

あなたは同類をggplot2形式であなたのリストを持っていたら、私は質問がggplotを使用してリストに与えられたデータをプロットするために、すなわち、どのように本当の問題、だと思うの?geom_dotplot –

+0

例のいくつかを参照してください。 – highBandWidth

答えて

7

ggplot2は、ソースデータとしてdata.frameを必要としています。だから、以下を行う必要があります。

  1. がreshape2(またはplyrまたは他の多くのツール)
  2. プロット使っqplotでデータを変換したりggplot

    例えば

    ## transform data 
    require(reshape2) 
    h <- do.call(cbind, phat) 
    h.melt <- melt(h) 
    
    ## rename variables so they look nicer on plots 
    names(h.melt) <- c("test","N","value")  
    
    ## stripchart (not shown) 
    qplot(data = h.melt, x = value,y = N,color=N)+geom_point() 
    
    ## histogram (not shown)  
    ggplot(h.melt,aes(x=value,fill=N))+geom_histogram()+facet_grid(N~.) 
    
    ## dotplot with rug (not shown) 
    ggplot(h.melt,aes(x=value,fill=N))+geom_dotplot()+facet_grid(N~.)+geom_rug() 
    
    ##density plot with rug (shown below) 
    ggplot(h.melt,aes(x=value,fill=N))+geom_density()+facet_grid(N~.)+geom_rug() 
    

    enter image description here

+2

この回答を少しはっきりさせるために、列の名前をプロットし、ヒストグラム、密度プロット、点プロットを試し、ラグを追加するようにします。'名前(h.melt)< - c("テスト "、" N "、値) ggplot(h.melt、aes(x = value、fill = N))+ geom_histogram()+ファセット・グリッド(N~。)+ geom_rug() ggplot(h.melt、aes(x = value、fill = N))+ geom_dotplot()+ facet_grid(N~。)+ geom_rug ggplot(h.melt、 + geom_density()+ facet_grid(N〜。)+ geom_rug() 'aes(x = value、fill = N) – MattBagg

1

私ができるベストあなたの手がかりを低くしてください:

qplot(data = h.melt, x = value,y = Var2)+ geom_point(shape=1, size=5) 

しかし、まだそれは確率を反映していません。その点を確率を反映するヒストグラムの一種として積み重ねる必要があります。

密度関数を使用するアプローチは異なりますが、プロットするサンプルカテゴリが多数あると面倒なことが起こる可能性があります。

ggplot(h.melt, aes(x=value, fill=Var2)) + geom_density(alpha=.5, position="identity") 
関連する問題