【问题标题】:netlogo plotxy for a histogram of patch visits along x and y axisnetlogo plotxy 用于沿 x 和 y 轴的补丁访问直方图
【发布时间】:2014-07-12 01:39:47
【问题描述】:

我是 netlogo 的新手,有一个绘图问题。 我在有偏随机游走模型上实现了一个简单的变体。我定义了 带有一些“吸引物”梯度的补丁,并且代理在附近聚集 梯度的峰值。我在每个补丁上保存了多少次 被访问过。

现在我想在“世界”旁边放置两个地块;下面一个和一个 去旁边。在其中,我想分别绘制每个 x 坐标或 y 坐标的平均访问次数。我想这归结为沿两个轴的访问投影,但我不知道如何在 plotxy 例程中实现对补丁的平均。

我无法弄清楚 netlogo 语法以及任何帮助或提示 教程将不胜感激。我将在下面对我的问题进行伪编码

基本上,对于 y 轴投影,我需要这样的东西:

y= ymin to ymax

for i=ymin to ymax
x(i)= sum(visits(patches(pycor==i)))/ count(visits(patches(pycor==i)))
end

plotxy(x,y)

期待您的来信

【问题讨论】:

    标签: plot netlogo


    【解决方案1】:

    这应该让你开始。

    to-report rows-sums
      let %rownums n-values world-height [? + min-pycor]
      let %sums map [sum [visits] of patches with [pycor = ?]] %rownums
      report (map [(list ?1 ?2)] %rownums %sums)
    end
    
    to plot-rowsums
      set-current-plot "plot01"
      clear-plot
      foreach rows-sums [plotxy item 0 ? item 1 ?]
    end
    

    【讨论】:

    • 很好,这在技术上是可行的,但它真的很慢。我用 1000 x 500 块设置我的世界,因为我的模型中需要一个平滑(S 形)梯度的引诱剂。有没有办法加快绘图速度?还是我在这个巨大的世界中滥用 netlogo?
    • 是的,您可以加快速度。最明显的是,将 rownums 定义为一个全局变量,而不是在每个刻度上计算它。不太明显的是,引入一个全局行和(当然还有 colsums)数组,并在每次增加补丁的访问时增加行总数和列总数。 (索引为行号,值为总和。)
    猜你喜欢
    • 2019-02-20
    • 1970-01-01
    • 2011-04-04
    • 2021-10-24
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 2013-04-16
    相关资源
    最近更新 更多