我正在构建一个试图模拟基于网络的市场的模型。在这个模型中,海龟/节点得到一个名为 points 的奖励,这是一个海龟自己的变量。
我现在试图绘制节点的程度与具有给定程度的节点具有的平均点数的图表。我试图通过从界面选项卡创建一个图来做到这一点,但我无法使这个工作。
以下是绘图设置窗口的图像。
有人知道我该怎么做才能做到这一点?
另外,我一直得到这些"运行时错误:无法找到空列表的最大值"在我创建的所有图/直方图中。目前这并不是什么大不了的,因为它们似乎工作得很好,但是如果你知道为什么这些出现请告诉我!
事先感谢,
卡洛斯
答案 0 :(得分:1)
为了简单起见并避免重载您的绘图设置,我喜欢使用to-report
程序来完成这样的操作。作为一个快速示例,请尝试以下设置:
to setup
ca
crt 50 [
set degree 5 + random 5
set points random 10
setxy random-xcor random-ycor
]
reset-ticks
end
每个to-report
为现有度数列表,每个度数的平均点数,以及这些平均点值的最大值:
to-report degrees-list
report sort remove-duplicates [degree] of turtles
end
to-report avg-points-list
let avg-list map [ i ->
mean [points] of turtles with [ degree = i ]
] degrees-list
report avg-list
end
to-report max-avg
report precision ( max avg-points-list + 1 ) 2
end
在此示例中,degrees-list
报告[ 1 2 3 4 5 ]
,avg-points-list
报告[6.5 3.9285714285714284 6 3.75 4.2]
,max-avg
报告类似7.5
的内容 - 请注意当然,由于设置是随机的,因此确切的值会有所不同。
现在,您可以设置绘图窗口:
实际绘图由foreach
中的plot pen
原语处理,plotxy
使用avg-points-list
绘制degrees-list
中的点值与{{1}中的对应值}}。应该给出一个看起来像这样的情节:
希望这就是你所追求的!