如何在NetLogo中生成直方图?

时间:2018-03-06 03:15:10

标签: netlogo

我有breed名为players。每个player-owns一个player-strategy。有6种可能player-strategies。我写的时候

histogram [player-strategy] of players

我的情节中没有任何内容。

我用一支笔有一个情节 - 并且不要设置情节或笔名。 plot-name返回情节。 pen-modebarinterval是1.0

我不知道如何要求当前penname。但由于情节只有一支笔,所以不重要。

直方图命令同时包含plot-updatepen-update。我已经在一起或一次尝试过它。我也试过代码。没有区别。

我需要做什么才能显示直方图?

1 个答案:

答案 0 :(得分:5)

好的,这就是我认为你的目标。

如果您创建以下图:

plot setup

并编写以下代码:

extensions [table]
breed [players player]
players-own [player-strategy]

to setup
  clear-all
  create-players 100 [ set player-strategy one-of ["a" "b" "c" "d" "e"] ]
  reset-ticks
end

to update-strategy-plot
  set-current-plot "Player strategies"
  clear-plot
  let counts table:counts [ player-strategy ] of players
  let strategies sort table:keys counts
  let n length strategies
  set-plot-x-range 0 n
  let step 0.05 ; tweak this to leave no gaps
  (foreach strategies range n [ [s i] ->
    let y table:get counts s
    let c hsb (i * 360 / n) 50 75
    create-temporary-plot-pen s
    set-plot-pen-mode 1 ; bar mode
    set-plot-pen-color c
    foreach (range 0 y step) [ _y -> plotxy i _y ]
    set-plot-pen-color black
    plotxy i y
    set-plot-pen-color c ; to get the right color in the legend
  ])
end

你应该得到以下情节:

plot result

我相信这也应该回答your previous question

(请注意,我已将绘图代码放在代码选项卡程序中,但您也可以将其粘贴在" Plot update命令"字段中。)