来自包含随机数的变量的直方图未显示

Histogram from a variable contains random number is not shown

我想绘制一个直方图,显示 cset-size 变量在海龟中的分布。但是当我为直方图指定 histogram [cset-size] of turtles 时,它没有显示任何内容。下面放上我的直方图设置的截图和整个代码。

是不是我忘记指定了什么或者我的代码有什么问题?

globals [ cset-size ]

to setup

  ca
  crt 100
  [
    set shape "person"
    set color yellow
    setxy random-xcor random-ycor
  ]

end

to go

  ask turtles
  [
    let a 4
    let b 1 / 6
    set cset-size round random-gamma a b
    set label cset-size
  ]

end

有两个问题 - 要绘制的值和时间不足。直方图构造本身很好。

第一个问题是 cset-sizeglobals 列表中。也就是说,它是一个只有一个值的全局变量,每只海龟都在更改该值而不是存储自己的值。从您的代码中可以清楚地看出,您希望每只海龟都有自己的 cset-size 值。让每只乌龟都有自己的价值:

删除globals [ cset-size ]

试试这个:turtles-own [ cset-size ]

第二个问题是你的模型没有任何时间概念。默认情况下,NetLogo 每个 tick 更新一次绘图,因此它不会不断更新显示并减慢模型速度。这需要两个更改:

  • 添加命令 reset-ticks 作为设置过程的最后一行
  • 将命令 tick 添加到您的 go 程序的最后一行

这些将初始化计时器作为模型设置的一部分,包括告诉 NetLogo 显示。并且每次通过 go 程序都会提前时间,从而触发绘图更新。