Class Weighted_PyramidPlotter

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants, EventListener

public class Weighted_PyramidPlotter extends JInternalFrame implements EventListener
A PyramidPlotter is able to display a pyramid using two weighted cross-sections of a variable (e.g. dag males/females for a population pyramid). It can be updated during the simulation. It is based on JFreeChart library and uses data sources based on the microsim.statistics.weighted* interfaces.
Note that the weights are taken into account by adding the weight to the count of each group. Groups can be optionally provided by the caller.

Title: JAS-mine

Description: Java Agent-based Simulation library

Copyright (C) 2020 Kostas Manios

This work is based on "Weighted_HistogramSimulationPlotter.java" by Ross Richardson This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
Author:
Kostas Manios

See Also:
  • Field Details

    • DEFAULT_TITLE

      public static String DEFAULT_TITLE
      Default values
    • DEFAULT_XAXIS

      public static String DEFAULT_XAXIS
    • DEFAULT_YAXIS

      public static String DEFAULT_YAXIS
    • DEFAULT_LEFT_CAT

      public static String DEFAULT_LEFT_CAT
    • DEFAULT_RIGHT_CAT

      public static String DEFAULT_RIGHT_CAT
    • DEFAULT_REVERSE_ORDER

      public static Boolean DEFAULT_REVERSE_ORDER
    • DEFAULT_YAXIS_FORMAT

      public static String DEFAULT_YAXIS_FORMAT
  • Constructor Details

    • Weighted_PyramidPlotter

      public Weighted_PyramidPlotter()
      Constructor for pyramid objects, showing only the latest data as time moves forward. Default values are used for all parameters: title, x-axis, y-axis, category names, age group names/ranges, reverseOrder It generates one age group per unique age, whose title is that age.
    • Weighted_PyramidPlotter

      public Weighted_PyramidPlotter(String title)
      Constructor for pyramid objects, showing only the latest data as time moves forward. Default values are used for the following parameters: x-axis, y-axis, category names, age group names/ranges, reverseOrder It generates one age group per unique age, whose title is that age.
      Parameters:
      title - - title of the chart
    • Weighted_PyramidPlotter

      public Weighted_PyramidPlotter(String title, String xaxis, String yaxis, String leftCat, String rightCat)
      Constructor for pyramid objects, showing only the latest data as time moves forward. Default values are used for the following parameters: age group names/ranges, reverseOrder It generates one age group per unique age, whose title is that age.
      Parameters:
      title - - title of the chart
      xaxis - - name of the x-axis
      yaxis - - name of the y-axis
      leftCat - - the name of the left category
      rightCat - - the name of the right category
    • Weighted_PyramidPlotter

      public Weighted_PyramidPlotter(int start, int end, int step)
      Constructor for pyramid objects, showing only the latest data as time moves forward. It generates groups names and ranges using the start/end/step values provided. Default values are used for the following parameters: x-axis, y-axis, category names, age group names/ranges, reverseOrder
      Parameters:
      start - - the minimum accepted value in groups
      end - - the maximum accepted value in groups
      step - - the step used to separate value into groups
    • Weighted_PyramidPlotter

      public Weighted_PyramidPlotter(int start, int end, int step, Boolean reverseOrder)
      Constructor for pyramid objects, showing only the latest data as time moves forward. It generates groups names and ranges using the start/end/step and order values provided. Default values are used for the following parameters: x-axis, y-axis, category names, age group names/ranges
      Parameters:
      start - - the minimum accepted value in groups
      end - - the maximum accepted value in groups
      step - - the step used to separate value into groups
      reverseOrder - - if true, it will reverse the groups
    • Weighted_PyramidPlotter

      public Weighted_PyramidPlotter(String title, String xaxis, String yaxis, String leftCat, String rightCat, int start, int end, int step, Boolean reverseOrder, String format)
      Constructor for pyramid objects, showing only the latest data as time moves forward. It generates groups names and ranges using the start/end/step values provided. Descending order is used by default.
      Parameters:
      title - - title of the chart
      xaxis - - name of the x-axis
      yaxis - - name of the y-axis
      leftCat - - the name of the left category
      rightCat - - the name of the right category
      start - - the minimum accepted value in groups
      end - - the maximum accepted value in groups
      step - - the step used to separate value into groups
      reverseOrder - - if true, it will reverse the groups
    • Weighted_PyramidPlotter

      public Weighted_PyramidPlotter(String[] groupNames, double[][] groupRanges)
      Constructor for pyramid objects, showing only the latest data as time moves forward. It generates groups based on the names and ranges provided. Default values are used for the following parameters: title, x-axis, y-axis, category names
      Parameters:
      groupNames - - an array of the name of each group
      groupRanges - - an array of the min/max values of each group
    • Weighted_PyramidPlotter

      public Weighted_PyramidPlotter(String title, String xaxis, String yaxis, String leftCat, String rightCat, String[] groupNames, double[][] groupRanges, String format)
      Constructor for pyramid objects, showing only the latest data as time moves forward. It generates groups based on the names and ranges provided.
      Parameters:
      title - - title of the chart
      xaxis - - name of the x-axis
      yaxis - - name of the y-axis
      leftCat - - the name of the left category
      rightCat - - the name of the right category
      groupNames - - an array of the name of each group
      groupRanges - - an array of the min/max values of each group
  • Method Details

    • onEvent

      public void onEvent(Enum<?> type)
      Specified by:
      onEvent in interface EventListener
    • update

      public void update()
    • setScalingFactor

      public void setScalingFactor(double scalingFactor)
    • addCollectionSource

      public void addCollectionSource(IWeightedDoubleArraySource[] source)
      Add a new series buffer, retrieving value from IWeightedDoubleSource objects in a collection.
      Parameters:
      source - A collection containing the sources.
    • addCollectionSource

      public void addCollectionSource(IWeightedFloatArraySource[] source)
      Add a new series buffer, retrieving value from IWeightedFloatSource objects in a collection.
      Parameters:
      source - A collection containing the sources.
    • addCollectionSource

      public void addCollectionSource(IWeightedIntArraySource[] source)
      Add a new series buffer, retrieving value from IWeightedIntArraySource objects in a collection.
      Parameters:
      source - A collection containing the sources.
    • addCollectionSource

      public void addCollectionSource(IWeightedLongArraySource[] source)
      Add a new series buffer, retrieving value from IWeightedLongSource objects in a collection.
      Parameters:
      source - A collection containing the sources.