Netlogo:绘制相对频率

时间:2016-06-01 13:59:10

标签: histogram netlogo

是的,这里有一个类似的问题NetLogo: histogram relative frequency,但据我所知,没有给出答案。我可以再次重新询问吗?我会根据问题添加评论,但我不允许。

我想绘制具有特定颜色的补丁的相对频率,以增加与乌龟的距离。到目前为止我尝试过的:

ask turtle [
  set-current-plot "plot 1"
  set-plot-y-range 0 1
  set-plot-pen-mode 1
  histogram [distance myself] of patches with [pcolor = red]]

这只给我绝对频率。我想绘制每个补丁颜色的相对频率,以增加与乌龟的距离。因此,距离海龟距离= 1时,总数中有多少个补丁。补丁是红色的。我尝试添加

histogram [distance myself ] of patches with [ ] / count patches with [distance myself = 1] ; when x-axis = 1, and so for increasing x 

但由于原始直方图需要列表,因此存在某些语法问题。我认为有一种更简单的方法可以将y轴设置为(距离x处的补丁的绝对出现次数/总数),所以我浏览了Netlogo字典,但找不到在绘图集下设置y轴的东西 - 命令。

非常感谢有关此问题的任何建议!感谢您的时间。

1 个答案:

答案 0 :(得分:0)

听起来你想绘制红色与总贴片的比例与距离的关系。你不会使用直方图...

相反,你要绘制它。

你需要获得距离最远的补丁的距离。比每个距离计算红色与该距离处的补丁总数的比例。

为了让你的生活更简单,你可能想要绕过距离,因为乌龟可能偏离补丁(即如果海龟有xcor .5而不是0或1。)

to setup
  clear-all

  crt 1 [ setxy random-xcor random-ycor]
  ask patches [ set pcolor ifelse-value (random 100 < 30) [red][black]]

  ask turtle 0 
  [
    let max-distance round max [distance myself] of patches
    set-current-plot "example-plot"
    set-plot-x-range 0 max-distance
    set-plot-y-range 0 1
    foreach n-values  max-distance [?]
    [
     let percent-red (count patches with [ round (distance myself) = ? and pcolor = red]) / (count patches with [ round (distance myself)  = ?])
     plotxy ? percent-red
    ]

  ]

end