2017-08-14 29 views
1

我正在构建一个试图模拟基于网络的市场的模型。在这个模型中,海龟/节点获得称为点的奖励,这是一个海龟自己的变量。Netlogo:如何绘制节点的程度与那个度的龟的平均“奖励”?

我现在正在试图绘制节点的程度与具有给定度数的节点的平均点数的关系图。我试图通过从界面选项卡创建一个图来做到这一点,但我无法设法做到这一点。

以下是图表设置的窗口图像。

enter image description here

enter image description here

任何人都知道我怎样才能使这项工作?

此外,我一直在我创建的所有图/直方图中看到这些“运行时错误:无法找到空列表的最大值”。目前这不是什么大问题,因为他们似乎工作得很好,但是如果你知道为什么会出现这些问题,请让我知道!

由于事前,

卡洛斯

回答

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 - 请注意,当然,由于设置是随机的,因此确切的值会有所不同。现在

,你可以设置你的绘图窗口:

Plot setup details

实际绘制由foreach原始的plot pen处理,它采用plotxyavg-points-list绘制的点值对相应的值在degrees-list。应该给一个情节,看起来像:

Example plot

希望这是那种你以后!