Package microsim.gui.plot
Class ScatterplotSimulationPlotter
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JInternalFrame
-
- microsim.gui.plot.ScatterplotSimulationPlotter
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.RootPaneContainer
,javax.swing.WindowConstants
,microsim.event.EventListener
public class ScatterplotSimulationPlotter extends javax.swing.JInternalFrame implements microsim.event.EventListener
A ScatterplotSimulationPlotter is able to trace one or more pairs of data sources over time, creating a scatterplot chart. It is based on JFreeChart library and uses data sources based on the microsim.statistics.* interfaces.
Title: JAS-mine
Description: Java Agent-based Simulation library
Copyright (C) 2017 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:
- Ross Richardson
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class javax.swing.JInternalFrame
CONTENT_PANE_PROPERTY, FRAME_ICON_PROPERTY, GLASS_PANE_PROPERTY, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, LAYERED_PANE_PROPERTY, MENU_BAR_PROPERTY, ROOT_PANE_PROPERTY, TITLE_PROPERTY
-
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description ScatterplotSimulationPlotter(java.lang.String title, java.lang.String xaxis, java.lang.String yaxis)
Constructor for scatterplot chart objects with chart legend displayed by default and all data samples shown, accumulating as time moves forward.ScatterplotSimulationPlotter(java.lang.String title, java.lang.String xaxis, java.lang.String yaxis, boolean includeLegend, int maxSamples)
Constructor for scatterplot chart objects, featuring a toggle to hide the chart legend and to set the number of previous time-steps of data to display in the chart.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addSeries(java.lang.String legend, java.lang.Object target_X, java.lang.String variableName_X, boolean getFromMethod_X, java.lang.Object target_Y, java.lang.String variableName_Y, boolean getFromMethod_Y)
Build a series of paired values from two generic objects.void
addSeries(java.lang.String legend, microsim.statistics.IDoubleSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.IDoubleSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values, retrieving data from two IDoubleSource objects.void
addSeries(java.lang.String legend, microsim.statistics.IDoubleSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.ILongSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values, retrieving x-axis data from an IDoubleSource object and y-axis data from an ILongSource object.void
addSeries(java.lang.String legend, microsim.statistics.IDoubleSource plottableObject_X, microsim.statistics.IDoubleSource plottableObject_Y)
Build a series of paired values, retrieving data from two IDoubleSource objects, using the default variableId.void
addSeries(java.lang.String legend, microsim.statistics.IDoubleSource plottableObject_X, microsim.statistics.ILongSource plottableObject_Y)
Build a series of paired values, retrieving x-axis data from an IDoubleSource object and y-axis data from an ILongSource object, using the default variableId.void
addSeries(java.lang.String legend, microsim.statistics.IFloatSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.IFloatSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values from two IFloatSource objects.void
addSeries(java.lang.String legend, microsim.statistics.IFloatSource plottableObject_X, microsim.statistics.IFloatSource plottableObject_Y)
Build a series of paired values from two IFloatSource objects, using the default variableId.void
addSeries(java.lang.String legend, microsim.statistics.IIntSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.IIntSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values from two IIntSource objects.void
addSeries(java.lang.String legend, microsim.statistics.IIntSource plottableObject_X, microsim.statistics.IIntSource plottableObject_Y)
Build a series of paired values from two IIntSource objects, using the default variableId.void
addSeries(java.lang.String legend, microsim.statistics.ILongSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.IDoubleSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values, retrieving x-axis data from an ILongSource object and y-axis data from an IDoubleSource object.void
addSeries(java.lang.String legend, microsim.statistics.ILongSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.ILongSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values from two ILongSource objectsvoid
addSeries(java.lang.String legend, microsim.statistics.ILongSource plottableObject_X, microsim.statistics.IDoubleSource plottableObject_Y)
Build a series of paired values, retrieving x-axis data from an ILongSource object and y-axis data from an IDoubleSource object, using the default variableId.void
addSeries(java.lang.String legend, microsim.statistics.ILongSource plottableObject_X, microsim.statistics.ILongSource plottableObject_Y)
Build a series of paired values from two ILongSource objects, using the default variableId.int
getMaxSamples()
Max samples parameters allow to define a maximum number of time-steps used in the scatter plot.void
onEvent(java.lang.Enum<?> type)
void
setMaxSamples(int maxSamples)
Set the max sample parameter.void
update()
-
Methods inherited from class javax.swing.JInternalFrame
addInternalFrameListener, dispose, doDefaultCloseAction, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getJMenuBar, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isSelected, moveToBack, moveToFront, pack, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setSelected, setTitle, setUI, show, toBack, toFront, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Constructor Detail
-
ScatterplotSimulationPlotter
public ScatterplotSimulationPlotter(java.lang.String title, java.lang.String xaxis, java.lang.String yaxis)
Constructor for scatterplot chart objects with chart legend displayed by default and all data samples shown, accumulating as time moves forward. If it is desired to turn the legend off, or set a limit to the number of previous time-steps of data displayed in the chart, use the constructor ScatterplotSimulationPlotter(String title, String xaxis, String yaxis, boolean includeLegend, int maxSamples)- Parameters:
title
- - title of the chartxaxis
- - name of the x-axisyaxis
- - name of the y-axis
-
ScatterplotSimulationPlotter
public ScatterplotSimulationPlotter(java.lang.String title, java.lang.String xaxis, java.lang.String yaxis, boolean includeLegend, int maxSamples)
Constructor for scatterplot chart objects, featuring a toggle to hide the chart legend and to set the number of previous time-steps of data to display in the chart.- Parameters:
title
- - title of the chartxaxis
- - name of the x-axisyaxis
- - name of the y-axisincludeLegend
- - toggles whether to include the legend. If displaying a very large number of different series in the chart, it may be useful to turn the legend off as it will occupy a lot of space in the GUI.maxSamples
- - the number of 'snapshots' of data displayed in the chart. Only data from the last 'maxSamples' updates will be displayed in the chart, so if the chart is updated at each 'time-step', then only the most recent 'maxSamples' time-steps will be shown on the chart. If the user wishes to accumulate all data points from the simulation run, i.e. to display all available data from all previous time-steps, set this to 0.
-
-
Method Detail
-
onEvent
public void onEvent(java.lang.Enum<?> type)
- Specified by:
onEvent
in interfacemicrosim.event.EventListener
-
update
public void update()
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.IDoubleSource plottableObject_X, microsim.statistics.IDoubleSource plottableObject_Y)
Build a series of paired values, retrieving data from two IDoubleSource objects, using the default variableId.- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the IDoubleSource interface to produce values for the x-axis (domain).plottableObject_Y
- The data source object implementing the IDoubleSource interface to produce values for the y-axis (range).
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.IDoubleSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.IDoubleSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values, retrieving data from two IDoubleSource objects.- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the IDoubleSource interface producing values of the x-axis (domain).variableID_X
- The variable id of the source object producing values of the x-axis (domain).plottableObject_Y
- The data source object implementing the IDoubleSource interface producing values of the y-axis (range).variableID_Y
- The variable id of the source object producing values of the y-axis (range).
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.IFloatSource plottableObject_X, microsim.statistics.IFloatSource plottableObject_Y)
Build a series of paired values from two IFloatSource objects, using the default variableId.- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the IFloatSource interface to produce values for the x-axis (domain).plottableObject_Y
- The data source object implementing the IFloatSource interface to produce values for the y-axis (range).
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.IFloatSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.IFloatSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values from two IFloatSource objects.- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the IFloatSource interface producing values of the x-axis (domain).variableID_X
- The variable id of the source object producing values of the x-axis (domain).plottableObject_Y
- The data source object implementing the IFloatSource interface producing values of the y-axis (range).variableID_Y
- The variable id of the source object producing values of the y-axis (range).
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.ILongSource plottableObject_X, microsim.statistics.ILongSource plottableObject_Y)
Build a series of paired values from two ILongSource objects, using the default variableId.- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the ILongSource interface producing values of the x-axis (domain).plottableObject_Y
- The data source object implementing the ILongSource interface producing values of the y-axis (range).
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.ILongSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.ILongSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values from two ILongSource objects- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the ILongSource interface producing values of the x-axis (domain).variableID_X
- The variable id of the source object producing values of the x-axis (domain).plottableObject_Y
- The data source object implementing the ILongSource interface producing values of the y-axis (range).variableID_Y
- The variable id of the source object producing values of the y-axis (range).
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.IIntSource plottableObject_X, microsim.statistics.IIntSource plottableObject_Y)
Build a series of paired values from two IIntSource objects, using the default variableId.- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the IIntSource interface producing values of the x-axis (domain).plottableObject_Y
- The data source object implementing the IIntSource interface producing values of the y-axis (range).
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.IIntSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.IIntSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values from two IIntSource objects.- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the IIntSource interface producing values of the x-axis (domain).variableID_X
- The variable id of the source object producing values of the x-axis (domain).plottableObject_Y
- The data source object implementing the IIntSource interface producing values of the y-axis (range).variableID_Y
- The variable id of the source object producing values of the y-axis (range).
-
addSeries
public void addSeries(java.lang.String legend, java.lang.Object target_X, java.lang.String variableName_X, boolean getFromMethod_X, java.lang.Object target_Y, java.lang.String variableName_Y, boolean getFromMethod_Y)
Build a series of paired values from two generic objects.- Parameters:
legend
- The legend name of the series.target_X
- The data source object for x-axis values (domain).variableName_X
- The variable or method name of the source object producing values for the x-axis (domain).getFromMethod_X
- Specifies if the variableName_X is a field or a method.target_Y
- The data source object for y-axis values (range).variableName_Y
- The variable or method name of the source object producing values for the y-axis (range).getFromMethod_Y
- Specifies if the variableName_Y is a field or a method.
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.IDoubleSource plottableObject_X, microsim.statistics.ILongSource plottableObject_Y)
Build a series of paired values, retrieving x-axis data from an IDoubleSource object and y-axis data from an ILongSource object, using the default variableId.- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the IDoubleSource interface to produce values for the x-axis (domain).plottableObject_Y
- The data source object implementing the ILongSource interface to produce values for the y-axis (range).
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.IDoubleSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.ILongSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values, retrieving x-axis data from an IDoubleSource object and y-axis data from an ILongSource object.- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the IDoubleSource interface producing values of the x-axis (domain).variableID_X
- The variable id of the source object producing values of the x-axis (domain).plottableObject_Y
- The data source object implementing the ILongSource interface producing values of the y-axis (range).variableID_Y
- The variable id of the source object producing values of the y-axis (range).
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.ILongSource plottableObject_X, microsim.statistics.IDoubleSource plottableObject_Y)
Build a series of paired values, retrieving x-axis data from an ILongSource object and y-axis data from an IDoubleSource object, using the default variableId.- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the ILongSource interface to produce values for the x-axis (domain).plottableObject_Y
- The data source object implementing the IDoubleSource interface to produce values for the y-axis (range).
-
addSeries
public void addSeries(java.lang.String legend, microsim.statistics.ILongSource plottableObject_X, java.lang.Enum<?> variableID_X, microsim.statistics.IDoubleSource plottableObject_Y, java.lang.Enum<?> variableID_Y)
Build a series of paired values, retrieving x-axis data from an ILongSource object and y-axis data from an IDoubleSource object.- Parameters:
legend
- The legend name of the series.plottableObject_X
- The data source object implementing the ILongSource interface producing values of the x-axis (domain).variableID_X
- The variable id of the source object producing values of the x-axis (domain).plottableObject_Y
- The data source object implementing the IDoubleSource interface producing values of the y-axis (range).variableID_Y
- The variable id of the source object producing values of the y-axis (range).
-
getMaxSamples
public int getMaxSamples()
Max samples parameters allow to define a maximum number of time-steps used in the scatter plot. When set, the oldest data points are removed as time moves forward to maintain the number of samples (time-steps) in the chart.
-
setMaxSamples
public void setMaxSamples(int maxSamples)
Set the max sample parameter.- Parameters:
maxSamples
- Maximum number of time-steps rendered on x axis.
-
-