Package org.jfree.chart.plot
Class CombinedRangeXYPlot
java.lang.Object
org.jfree.chart.plot.Plot
org.jfree.chart.plot.XYPlot
org.jfree.chart.plot.CombinedRangeXYPlot
- All Implemented Interfaces:
Serializable
,Cloneable
,EventListener
,AnnotationChangeListener
,AxisChangeListener
,MarkerChangeListener
,PlotChangeListener
,RendererChangeListener
,LegendItemSource
,Pannable
,ValueAxisPlot
,Zoomable
,PublicCloneable
,DatasetChangeListener
An extension of
XYPlot
that contains multiple subplots that share a
common range axis.- See Also:
-
Field Summary
Fields inherited from class org.jfree.chart.plot.XYPlot
DEFAULT_CROSSHAIR_PAINT, DEFAULT_CROSSHAIR_STROKE, DEFAULT_CROSSHAIR_VISIBLE, DEFAULT_GRIDLINE_PAINT, DEFAULT_GRIDLINE_STROKE, localizationResources
Fields inherited from class org.jfree.chart.plot.Plot
DEFAULT_BACKGROUND_ALPHA, DEFAULT_BACKGROUND_PAINT, DEFAULT_FOREGROUND_ALPHA, DEFAULT_INSETS, DEFAULT_LEGEND_ITEM_BOX, DEFAULT_LEGEND_ITEM_CIRCLE, DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, MINIMUM_HEIGHT_TO_DRAW, MINIMUM_WIDTH_TO_DRAW, ZERO
-
Constructor Summary
ConstructorDescriptionDefault constructor.CombinedRangeXYPlot
(ValueAxis rangeAxis) Creates a new plot. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a subplot, with a default 'weight' of 1.void
Adds a subplot with a particular weight (greater than or equal to one).protected AxisSpace
calculateAxisSpace
(Graphics2D g2, Rectangle2D plotArea) Calculates the space required for the axes.clone()
Returns a clone of the plot.void
draw
(Graphics2D g2, Rectangle2D area, Point2D anchor, PlotState parentState, PlotRenderingInfo info) Draws the plot within the specified area on a graphics device.boolean
Tests this plot for equality with another object.findSubplot
(PlotRenderingInfo info, Point2D source) Returns the subplot (if any) that contains the (x, y) point (specified in Java2D space).getDataRange
(ValueAxis axis) Returns a range representing the extent of the data values in this plot (obtained from the subplots) that will be rendered against the specified axis.double
getGap()
Returns the space between subplots.Returns a collection of legend items for the plot.Returns a string describing the type of plot.Returns the list of subplots.void
handleClick
(int x, int y, PlotRenderingInfo info) Handles a 'click' on the plot by updating the anchor values...boolean
Returnstrue
if the domain is pannable for at least one subplot, andfalse
otherwise.void
panDomainAxes
(double panRange, PlotRenderingInfo info, Point2D source) Pans all domain axes by the specified percentage.void
plotChanged
(PlotChangeEvent event) Receives aPlotChangeEvent
and responds by notifying all listeners.void
Removes a subplot from the combined chart.void
setDomainPannable
(boolean pannable) Sets the flag, on each of the subplots, that controls whether or not the domain is pannable.protected void
Sets the space (width or height, depending on the orientation of the plot) for the domain axis of each subplot.void
setGap
(double gap) Sets the amount of space between subplots.void
setOrientation
(PlotOrientation orientation) Sets the orientation for the plot (and all its subplots).void
setRenderer
(XYItemRenderer renderer) Sets the item renderer FOR ALL SUBPLOTS.void
setShadowGenerator
(ShadowGenerator generator) Sets the shadow generator for the plot (and all subplots) and sends aPlotChangeEvent
to all registered listeners.void
zoomDomainAxes
(double lowerPercent, double upperPercent, PlotRenderingInfo info, Point2D source) Zooms in on the domain axes.void
zoomDomainAxes
(double factor, PlotRenderingInfo info, Point2D source) Multiplies the range on the domain axis/axes by the specified factor.void
zoomDomainAxes
(double factor, PlotRenderingInfo info, Point2D source, boolean useAnchor) Multiplies the range on the domain axis/axes by the specified factor.Methods inherited from class org.jfree.chart.plot.XYPlot
addAnnotation, addAnnotation, addDomainMarker, addDomainMarker, addDomainMarker, addDomainMarker, addRangeMarker, addRangeMarker, addRangeMarker, addRangeMarker, annotationChanged, calculateDomainAxisSpace, calculateRangeAxisSpace, clearAnnotations, clearDomainAxes, clearDomainMarkers, clearDomainMarkers, clearRangeAxes, clearRangeMarkers, clearRangeMarkers, configureDomainAxes, configureRangeAxes, datasetChanged, drawAnnotations, drawAxes, drawBackground, drawDomainCrosshair, drawDomainGridlines, drawDomainMarkers, drawDomainTickBands, drawHorizontalLine, drawQuadrants, drawRangeCrosshair, drawRangeGridlines, drawRangeMarkers, drawRangeTickBands, drawVerticalLine, drawZeroDomainBaseline, drawZeroRangeBaseline, getAnnotations, getAxisOffset, getDataset, getDataset, getDatasetCount, getDatasetRenderingOrder, getDatasets, getDomainAxes, getDomainAxis, getDomainAxis, getDomainAxisCount, getDomainAxisEdge, getDomainAxisEdge, getDomainAxisForDataset, getDomainAxisIndex, getDomainAxisLocation, getDomainAxisLocation, getDomainCrosshairPaint, getDomainCrosshairStroke, getDomainCrosshairValue, getDomainGridlinePaint, getDomainGridlineStroke, getDomainMarkers, getDomainMarkers, getDomainMinorGridlinePaint, getDomainMinorGridlineStroke, getDomainTickBandPaint, getDomainZeroBaselinePaint, getDomainZeroBaselineStroke, getFixedDomainAxisSpace, getFixedLegendItems, getFixedRangeAxisSpace, getIndexOf, getOrientation, getQuadrantOrigin, getQuadrantPaint, getRangeAxes, getRangeAxis, getRangeAxis, getRangeAxisCount, getRangeAxisEdge, getRangeAxisEdge, getRangeAxisForDataset, getRangeAxisIndex, getRangeAxisLocation, getRangeAxisLocation, getRangeCrosshairPaint, getRangeCrosshairStroke, getRangeCrosshairValue, getRangeGridlinePaint, getRangeGridlineStroke, getRangeMarkers, getRangeMarkers, getRangeMinorGridlinePaint, getRangeMinorGridlineStroke, getRangeTickBandPaint, getRangeZeroBaselinePaint, getRangeZeroBaselineStroke, getRenderer, getRenderer, getRendererCount, getRendererForDataset, getRenderers, getSeriesCount, getSeriesRenderingOrder, getShadowGenerator, getWeight, indexOf, isDomainCrosshairLockedOnData, isDomainCrosshairVisible, isDomainGridlinesVisible, isDomainMinorGridlinesVisible, isDomainZeroBaselineVisible, isDomainZoomable, isRangeCrosshairLockedOnData, isRangeCrosshairVisible, isRangeGridlinesVisible, isRangeMinorGridlinesVisible, isRangePannable, isRangeZeroBaselineVisible, isRangeZoomable, mapDatasetToDomainAxes, mapDatasetToDomainAxis, mapDatasetToRangeAxes, mapDatasetToRangeAxis, panRangeAxes, removeAnnotation, removeAnnotation, removeDomainMarker, removeDomainMarker, removeDomainMarker, removeDomainMarker, removeRangeMarker, removeRangeMarker, removeRangeMarker, removeRangeMarker, render, rendererChanged, setAxisOffset, setDataset, setDataset, setDatasetRenderingOrder, setDomainAxes, setDomainAxis, setDomainAxis, setDomainAxis, setDomainAxisLocation, setDomainAxisLocation, setDomainAxisLocation, setDomainAxisLocation, setDomainCrosshairLockedOnData, setDomainCrosshairPaint, setDomainCrosshairStroke, setDomainCrosshairValue, setDomainCrosshairValue, setDomainCrosshairVisible, setDomainGridlinePaint, setDomainGridlineStroke, setDomainGridlinesVisible, setDomainMinorGridlinePaint, setDomainMinorGridlineStroke, setDomainMinorGridlinesVisible, setDomainTickBandPaint, setDomainZeroBaselinePaint, setDomainZeroBaselineStroke, setDomainZeroBaselineVisible, setFixedDomainAxisSpace, setFixedDomainAxisSpace, setFixedLegendItems, setFixedRangeAxisSpace, setFixedRangeAxisSpace, setQuadrantOrigin, setQuadrantPaint, setRangeAxes, setRangeAxis, setRangeAxis, setRangeAxis, setRangeAxisLocation, setRangeAxisLocation, setRangeAxisLocation, setRangeAxisLocation, setRangeCrosshairLockedOnData, setRangeCrosshairPaint, setRangeCrosshairStroke, setRangeCrosshairValue, setRangeCrosshairValue, setRangeCrosshairVisible, setRangeGridlinePaint, setRangeGridlineStroke, setRangeGridlinesVisible, setRangeMinorGridlinePaint, setRangeMinorGridlineStroke, setRangeMinorGridlinesVisible, setRangePannable, setRangeTickBandPaint, setRangeZeroBaselinePaint, setRangeZeroBaselineStroke, setRangeZeroBaselineVisible, setRenderer, setRenderer, setRenderers, setSeriesRenderingOrder, setWeight, zoomRangeAxes, zoomRangeAxes, zoomRangeAxes
Methods inherited from class org.jfree.chart.plot.Plot
addChangeListener, axisChanged, canEqual, createAndAddEntity, drawBackgroundImage, drawNoDataMessage, drawOutline, fetchElementHintingFlag, fillBackground, fillBackground, fireChangeEvent, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getChart, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, hashCode, isNotify, isOutlineVisible, isSubplot, markerChanged, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundImageAlpha, setBackgroundPaint, setChart, setDatasetGroup, setDrawingSupplier, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setNotify, setOutlinePaint, setOutlineStroke, setOutlineVisible, setParent, zoom
-
Constructor Details
-
CombinedRangeXYPlot
public CombinedRangeXYPlot()Default constructor. -
CombinedRangeXYPlot
Creates a new plot.- Parameters:
rangeAxis
- the shared axis.
-
-
Method Details
-
getPlotType
Returns a string describing the type of plot.- Overrides:
getPlotType
in classXYPlot
- Returns:
- The type of plot.
-
getGap
Returns the space between subplots.- Returns:
- The gap.
- See Also:
-
setGap
Sets the amount of space between subplots.- Parameters:
gap
- the gap between subplots.- See Also:
-
isDomainPannable
Returnstrue
if the domain is pannable for at least one subplot, andfalse
otherwise.- Specified by:
isDomainPannable
in interfacePannable
- Overrides:
isDomainPannable
in classXYPlot
- Returns:
- A boolean.
-
setDomainPannable
Sets the flag, on each of the subplots, that controls whether or not the domain is pannable.- Overrides:
setDomainPannable
in classXYPlot
- Parameters:
pannable
- the new flag value.
-
add
Adds a subplot, with a default 'weight' of 1.
You must ensure that the subplot has a non-null domain axis. The range axis for the subplot will be set tonull
.- Parameters:
subplot
- the subplot.
-
add
Adds a subplot with a particular weight (greater than or equal to one). The weight determines how much space is allocated to the subplot relative to all the other subplots.
You must ensure that the subplot has a non-null domain axis. The range axis for the subplot will be set tonull
.- Parameters:
subplot
- the subplot (null
not permitted).weight
- the weight (must be 1 or greater).
-
remove
Removes a subplot from the combined chart.- Parameters:
subplot
- the subplot (null
not permitted).
-
getSubplots
Returns the list of subplots. The returned list may be empty, but is nevernull
.- Returns:
- An unmodifiable list of subplots.
-
calculateAxisSpace
Calculates the space required for the axes.- Overrides:
calculateAxisSpace
in classXYPlot
- Parameters:
g2
- the graphics device.plotArea
- the plot area.- Returns:
- The space required for the axes.
-
draw
public void draw(Graphics2D g2, Rectangle2D area, Point2D anchor, PlotState parentState, PlotRenderingInfo info) Draws the plot within the specified area on a graphics device.- Overrides:
draw
in classXYPlot
- Parameters:
g2
- the graphics device.area
- the plot area (in Java2D space).anchor
- an anchor point in Java2D space (null
permitted).parentState
- the state from the parent plot, if there is one (null
permitted).info
- collects chart drawing information (null
permitted).
-
getLegendItems
Returns a collection of legend items for the plot.- Specified by:
getLegendItems
in interfaceLegendItemSource
- Overrides:
getLegendItems
in classXYPlot
- Returns:
- The legend items.
-
zoomDomainAxes
Multiplies the range on the domain axis/axes by the specified factor.- Specified by:
zoomDomainAxes
in interfaceZoomable
- Overrides:
zoomDomainAxes
in classXYPlot
- Parameters:
factor
- the zoom factor.info
- the plot rendering info (null
not permitted).source
- the source point (null
not permitted).- See Also:
-
zoomDomainAxes
public void zoomDomainAxes(double factor, PlotRenderingInfo info, Point2D source, boolean useAnchor) Multiplies the range on the domain axis/axes by the specified factor.- Specified by:
zoomDomainAxes
in interfaceZoomable
- Overrides:
zoomDomainAxes
in classXYPlot
- Parameters:
factor
- the zoom factor.info
- the plot rendering info (null
not permitted).source
- the source point (null
not permitted).useAnchor
- zoom about the anchor point?- See Also:
-
zoomDomainAxes
public void zoomDomainAxes(double lowerPercent, double upperPercent, PlotRenderingInfo info, Point2D source) Zooms in on the domain axes.- Specified by:
zoomDomainAxes
in interfaceZoomable
- Overrides:
zoomDomainAxes
in classXYPlot
- Parameters:
lowerPercent
- the lower bound.upperPercent
- the upper bound.info
- the plot rendering info (null
not permitted).source
- the source point (null
not permitted).- See Also:
-
panDomainAxes
Pans all domain axes by the specified percentage.- Specified by:
panDomainAxes
in interfacePannable
- Overrides:
panDomainAxes
in classXYPlot
- Parameters:
panRange
- the distance to pan (as a percentage of the axis length).info
- the plot infosource
- the source point where the pan action started.
-
findSubplot
Returns the subplot (if any) that contains the (x, y) point (specified in Java2D space).- Parameters:
info
- the chart rendering info (null
not permitted).source
- the source point (null
not permitted).- Returns:
- A subplot (possibly
null
).
-
setRenderer
Sets the item renderer FOR ALL SUBPLOTS. Registered listeners are notified that the plot has been modified.Note: usually you will want to set the renderer independently for each subplot, which is NOT what this method does.
- Overrides:
setRenderer
in classXYPlot
- Parameters:
renderer
- the new renderer.- See Also:
-
setOrientation
Sets the orientation for the plot (and all its subplots).- Overrides:
setOrientation
in classXYPlot
- Parameters:
orientation
- the orientation.- See Also:
-
setShadowGenerator
Sets the shadow generator for the plot (and all subplots) and sends aPlotChangeEvent
to all registered listeners.- Overrides:
setShadowGenerator
in classXYPlot
- Parameters:
generator
- the new generator (null
permitted).
-
getDataRange
Returns a range representing the extent of the data values in this plot (obtained from the subplots) that will be rendered against the specified axis. NOTE: This method is intended for internal JFreeChart use, and is public only so that code in the axis classes can call it. Since only the range axis is shared between subplots, the JFreeChart code will only call this method for the range values (although this is not checked/enforced).- Specified by:
getDataRange
in interfaceValueAxisPlot
- Overrides:
getDataRange
in classXYPlot
- Parameters:
axis
- the axis.- Returns:
- The range.
-
setFixedDomainAxisSpaceForSubplots
Sets the space (width or height, depending on the orientation of the plot) for the domain axis of each subplot.- Parameters:
space
- the space.
-
handleClick
Handles a 'click' on the plot by updating the anchor values...- Overrides:
handleClick
in classXYPlot
- Parameters:
x
- x-coordinate, where the click occured.y
- y-coordinate, where the click occured.info
- object containing information about the plot dimensions.
-
plotChanged
Receives aPlotChangeEvent
and responds by notifying all listeners.- Specified by:
plotChanged
in interfacePlotChangeListener
- Parameters:
event
- the event.
-
equals
Tests this plot for equality with another object. -
clone
Returns a clone of the plot.- Specified by:
clone
in interfacePublicCloneable
- Overrides:
clone
in classXYPlot
- Returns:
- A clone.
- Throws:
CloneNotSupportedException
- this class will not throw this exception, but subclasses (if any) might.
-