Print

Print


Try adding this line after you call updateSeries:

histogram_traits.update(ChartGenerator.FORCE_KEY, true);

Joey

On Fri, Jun 16, 2017 at 8:37 PM, Paul Smaldino <[log in to unmask]>
wrote:

> 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
>