R 使用ggplot打印列表对象

R 使用ggplot打印列表对象,r,ggplot2,R,Ggplot2,我正在运行一些模拟,我想在一个漂亮的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 <

我正在运行一些模拟,我想在一个漂亮的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
    }

Nggplot2需要一个data.frame作为源数据。因此,您需要:

  • 使用整形2(或plyr或许多其他工具)转换数据
  • 使用qplot或ggplot打印

    e、 g

    ##转换数据
    要求(2)
    
    根据你的线索,我能做的最好的事情是:

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

    只是为了稍微重复一下这个答案,我们可以命名这些列,以便它们在绘图中看起来更好,然后尝试直方图、密度图、点图,或者添加地毯。例如:
    names(h.melt)一旦您的列表采用ggplot2喜欢的格式,请参见?geom_dotplot上的一些示例我认为这是一个真正的问题,即如何使用ggplot绘制列表中给出的数据。
    
    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")