【问题标题】:ggplot2 making a line graph that records constantly changing variablesggplot2制作一个记录不断变化的变量的折线图
【发布时间】:2018-04-19 09:18:50
【问题描述】:

我有如下图和代码:

 library(igraph)
 g <- make_empty_graph (2) %>%
   set_vertex_attr("a", value = 1) %>%
   add_vertices(2, color = 2, "a" = 2) %>%
   add_vertices(2, color = 4, "a" = 3) %>%
   add_edges(c(1,2, 2,1, 1,5, 5,1, 1,4 ,4,1)) %>%
   set_vertex_attr("xyz", value = 3)

 i <- 1

 repeat {
   prev_value <- mean(V(g)$a == 1)
   print(V(g)$a)
   print(mean(V(g)$a == 1))
   print(i)

   V(g)$xyz = sapply(V(g), function(x) {
     NeighborList = neighbors(g, x)
     length(NeighborList[NeighborList$a == 2])
   })
   V(g)$a[V(g)$xyz == 1] = 2


   i <- i + 1

   aa <- mean(V(g)$a == 1)
   if (aa == prev_value) {
     break
   }
 }


 df <- data.frame(time=i, prop=aa)

 library(ggplot2)

 ggplot(data=df, aes(x=time, y=prop, group=1)) +
     geom_line() + 
     geom_point() 

但是,每当我尝试运行它时,它都不起作用。理想情况下,我想要一个输出,其中 ggplot2 将绘制一个线图,该线图描述了随着时间变量“i”的变化,属性“aa”值为 1 的节点比例的变化。

【问题讨论】:

    标签: r ggplot2 igraph


    【解决方案1】:

    我不确定你到底想要什么。但是,如果您想描述每次迭代在aa 中的差异,那么您可以在repeat 中添加ggplot

    repeat {
      prev_value <- mean(V(g)$a == 1)
      print(V(g)$a)
      print(mean(V(g)$a == 1))
      print(i)
    
      V(g)$xyz = sapply(V(g), function(x) {
        NeighborList = neighbors(g, x)
        length(NeighborList[NeighborList$a == 2])
      })
      V(g)$a[V(g)$xyz == 1] = 2
    
    
      i <- i + 1
    
      aa <- mean(V(g)$a == 1)
      if(i == 1){
      df <- data.frame(time=i, prop=aa)
      print( ggplot(data=df, aes(x=time, y=prop, group=1)) +
               geom_line() + 
               geom_point() )}else{
                 df <- rbind(df,data.frame(time=i, prop=aa))
       print( ggplot(data=df, aes(x=time, y=prop, group=1)) +
        geom_line() + 
        geom_point() )}
    
    
      if (aa == prev_value) {
        break
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      相关资源
      最近更新 更多