NetLogo:带有字符串列表的直方图

NetLogo: histogram with list of strings

我只是尝试创建一个基于这样的字符列表的直方图:

histogram [a c a c b c a c c c c c c a c c a c a c a a c c c a a b c b c]

但它没有显示任何内容。 它只是应该处理数字还是我遗漏了什么?

您没有在直方图列表中使用引号,但我假设您想绘制一个字符串列表,例如 ["a" "b" "c" ...] ,对吧?

据我所知,在 netlogo 图中不可能对直方图使用分类值(如字符串)。 netlogo词典中也是这样说的: 直方图 [...] 列表中的任何非数字值都将被忽略。 [...]

解决这个问题的一种方法是通过给每个字符串字符一个特定的数字来转换为数字列表:

  let m ["a" "c" "a" "c" "b" "c" "a" "a" "c" "c" "b" "b" "c" "c" "a" "a"]
  let n [ ]

  foreach m
  [
    if (? = "a") [set n lput 0 n]
    if (? = "b") [set n lput 1 n]
    if (? = "c") [set n lput 2 n]
   ;...
  ]

  histogram n

直方图如您所说。要帮助您了解有关您的代码的信息并不容易。对我来说,错误可能来自两种方式:

  1. 情节上下文定义需要在栏中(即图像)
  2. 需要定义x-range情节定义

对于第二个假设,类似于

set-plot-x-range 0 ( (max myliste) + 5)
histogram myliste
let maxbar modes myliste
let maxrange length filter [ ? = item 0 maxbar ] myliste
set-plot-y-range 0 1000

在代码界面上的情节可能有效

如果选择第二种方式,则不需要像截图那样定义比例尺