我有一个NetLogo模型。每只乌龟都有两个属性,“亲密性”和“ deviation_from_oracle”。现在,假设模型中有1000个代理。问题是,如何针对“ deviation_from_oracle”绘制“亲密关系”?
如果我可以从NetLogo获得一个csv文件,该文件具有例如1500步骤之后所有乌龟的接近度和deviaiton_from_oracle的值,那么这也将很有帮助。
答案 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
这给出了类似的输出:
每个点都是由一只乌龟绘制的。
如果要获取一些报告的平均值,请让观察员致电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
对于类似这样的输出