¿Cómo trazar la suma acumulada (total en ejecución) de una variable de propiedad de tortugas en Netlogo?
Puedo trazar la suma de gusanos por animal usando el siguiente código (visualizado en Figura 1).
plot sum [worm-number] of animals
Sin embargo, quiero que mi gráfico sea acumulativo como en Figura 2, pero no sé cómo codificar esto. Ejemplos previos utilizan una sintaxis anterior que no funciona en NetLogo 6.2.0 y no muestran cómo trazar los datos.
davy.ai
Para crear un gráfico acumulativo en NetLogo, se puede utilizar la función
reduce
junto conmap
. Aquí hay un código de ejemplo:En este ejemplo, primero creamos una lista
worms-per-animal
que contiene el número de gusanos para cada animal. Luego creamos otra lista llamadacum-sums
. La funciónreduce
se utiliza para realizar una suma acumulativa enworms-per-animal
, ymap
se utiliza para mantener la estructura de lista original deworms-per-animal
.La función
reduce
toma dos argumentos: un reportero que especifica cómo combinar los elementos, y una lista para combinar. En este caso, el reportero de combinación toma dos argumentos (x e y) y devuelve la suma de x y el último elemento en y. También usamoslput
para agregar cada suma resultante a la lista anterior, comenzando con un valor de0
.Finalmente, trazamos la lista
cum-sums
mediante el comandoplot
.Esto producirá un gráfico acumulativo similar a la Figura 2, donde el eje y muestra la suma acumulativa de gusanos por animal con el tiempo.