如何在netlogo中绘制分布图?

时间:2019-04-03 18:31:58

标签: netlogo

我有一个NetLogo模型。每只乌龟都有两个属性,“亲密性”和“ deviation_from_oracle”。现在,假设模型中有1000个代理。问题是,如何针对“ deviation_from_oracle”绘制“亲密关系”?

如果我可以从NetLogo获得一个csv文件,该文件具有例如1500步骤之后所有乌龟的接近度和deviaiton_from_oracle的值,那么这也将很有帮助。

1 个答案:

答案 0 :(得分:2)

我绝对同意Hugh_Kelley关于使用Behaviorspace输出值的信息(或自定义导出功能,如果您要报告大量动态海龟的值,这些自定义导出功能可以简化数据清理工作-取决于您对统计的满意程度)选择的软件)。

如果确实需要在界面上绘制某些内容以显示用户或某些内容,则可能会发现plotxy函数可以满足您的需求。例如,您将需要在界面上创建一个名为“ plot 1”的图,并且在该图中需要一个空白的笔称为“ pen-0”。

您可以通过手动设置其x和y范围或通过使用set-plot-...中的setup命令来控制该图:

to setup
  ca
  crt 10
  set-current-plot "plot 1"
  set-current-plot-pen "pen-0"
  set-plot-pen-mode 2
  set-plot-x-range 0 17
  set-plot-y-range 0 25
  reset-ticks
end

如果您需要为每只海龟绘制一个值,则可以让海龟调用plotxy以获取您要绘制的任何值-在这里,我只使用它们的绝对x坐标和距离以中心为例:

to go
  ask turtles [
    rt random 61 - 30
    fd 1
    set-plot-pen-color color
    plotxy ( abs xcor ) distance patch 0 0    
  ]
  tick
end

这给出了类似的输出:

enter image description here

每个点都是由一只乌龟绘制的。

如果要获取一些报告的平均值,请让观察员致电plotxy-另一个示例,该示例绘制到其他海龟的平均距离和到中心的平均距离:

to go
  plotxy mean-closeness-to-others mean-distance-center
  ask turtles [
    rt random 61 - 30
    fd 1
  ]
  tick
end

to-report mean-closeness-to-others
  report mean [ mean map distance sort other turtles ] of turtles
end

to-report mean-distance-center 
  report mean [ distancexy 0 0 ] of turtles
end

对于类似这样的输出

enter image description here