Print

Print


Hi,

I was hoping someone could help me figure out what's not working with my
code. I have an ABM in which individuals have traits that change over time.
I want to plot a dynamic histogram of all the traits, as well as several
other dynamic plots. Many issues with this, but but using MASON 19 and JRE
1.8, I can get the plots to appear at initialization, but not they don't
update. I've tried this with scatter plots too, they also don't update
using updateSeries. Time series plots do work, but don't use updateSeries.

Thanks in advance!

-Paul

Below is abridged code (start method only) for histogram.

public void start() {
   super.start();
   AgentsSimulation as = (AgentsSimulation) state;
   //chart start and step
   histogram_traits.removeAllSeries();
   /*
   * Add data for histograms.
   * Each trait needs to be defined by a vector of doubles
   * for all the values for each agent.
   */
   double[][] traitValueFreq = new double[as.numTraits][as.numAgents];
    for(int i = 0; i < as.numAgents; i++){
        Agent aj = (Agent)as.agentBag.get(i);
        for(int j = 0; j < as.numTraits; j++){
        traitValueFreq[j][i] = aj.traits[j];
        }
     }
     for(int i = 0; i< as.numTraits; i++){
        String seriesName = "Trait " + i;
        histogram_traits.addSeries(traitValueFreq[i], 51,seriesName,null);
      }

     if(as.doGraphics) //only update if doing graphics
     scheduleRepeatingImmediatelyAfter(new Steppable() //update all the
plots each time step
     {
        public void step(SimState state)  {
        AgentsSimulation as = (AgentsSimulation) state;
        //update trait histogram
        double[][] traitValueFreq = new double[as.numTraits][as.numAgents];
        for(int i = 0; i < as.numAgents; i++){
           Agent aj = (Agent)as.agentBag.get(i);
           for(int j = 0; j < as.numTraits; j++){
              traitValueFreq[j][i] = aj.traits[j];
            }
         }

//THIS IS THE BIT THAT DOESN’T WORK
      for(int i = 0; i< as.numTraits; i++){
         histogram_traits.updateSeries(i,traitValueFreq[i]);
      }
    }
    });
}


__________________________________________________________
Paul Smaldino, Ph.D.
Assistant Professor, Cognitive and Information Sciences
Faculty Member, Quantitative and Systems Biology Graduate Group
University of California, Merced
http://www.smaldino.com