Package org.jfree.chart.plot
Class CombinedDomainXYPlot
java.lang.Object
org.jfree.chart.plot.Plot
org.jfree.chart.plot.XYPlot
org.jfree.chart.plot.CombinedDomainXYPlot
- 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 domain 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, localizationResourcesFields 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
ConstructorsConstructorDescriptionDefault constructor.CombinedDomainXYPlot(ValueAxis domainAxis) Creates a new combined plot that shares a domain axis among multiple subplots. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a subplot (with a default 'weight' of 1) and sends aPlotChangeEventto all registered listeners.voidAdds a subplot with the specified weight and sends aPlotChangeEventto all registered listeners.protected AxisSpacecalculateAxisSpace(Graphics2D g2, Rectangle2D plotArea) Calculates the axis space required.clone()Returns a clone of the annotation.voiddatasetChanged(DatasetChangeEvent event) Receives notification of a change to the plot's dataset.voiddraw(Graphics2D g2, Rectangle2D area, Point2D anchor, PlotState parentState, PlotRenderingInfo info) Draws the plot within the specified area on a graphics device.booleanTests 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.doublegetGap()Returns the gap between subplots, measured in Java2D units.Returns a collection of legend items for the plot.Returns a string describing the type of plot.Returns the list of subplots.voidhandleClick(int x, int y, PlotRenderingInfo info) Handles a 'click' on the plot by updating the anchor values.booleanReturnstrueif the range is pannable for at least one subplot, andfalseotherwise.voidpanRangeAxes(double panRange, PlotRenderingInfo info, Point2D source) Pans all range axes by the specified percentage.voidplotChanged(PlotChangeEvent event) Receives aPlotChangeEventand responds by notifying all listeners.voidRemoves a subplot from the combined chart and sends aPlotChangeEventto all registered listeners.voidsetFixedRangeAxisSpace(AxisSpace space) Sets the fixed range axis space and sends aPlotChangeEventto all registered listeners.protected voidSets the size (width or height, depending on the orientation of the plot) for the domain axis of each subplot.voidsetGap(double gap) Sets the amount of space between subplots and sends aPlotChangeEventto all registered listeners.voidsetOrientation(PlotOrientation orientation) Sets the orientation for the plot (also changes the orientation for all the subplots to match).voidsetRangePannable(boolean pannable) Sets the flag, on each of the subplots, that controls whether or not the range is pannable.voidsetRenderer(XYItemRenderer renderer) Sets the item renderer FOR ALL SUBPLOTS.voidsetShadowGenerator(ShadowGenerator generator) Sets the shadow generator for the plot (and all subplots) and sends aPlotChangeEventto all registered listeners.voidzoomRangeAxes(double lowerPercent, double upperPercent, PlotRenderingInfo info, Point2D source) Zooms in on the range axes.voidzoomRangeAxes(double factor, PlotRenderingInfo info, Point2D source) Multiplies the range on the range axis/axes by the specified factor.voidzoomRangeAxes(double factor, PlotRenderingInfo state, Point2D source, boolean useAnchor) Multiplies the range on the range 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, 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, isDomainPannable, isDomainZeroBaselineVisible, isDomainZoomable, isRangeCrosshairLockedOnData, isRangeCrosshairVisible, isRangeGridlinesVisible, isRangeMinorGridlinesVisible, isRangeZeroBaselineVisible, isRangeZoomable, mapDatasetToDomainAxes, mapDatasetToDomainAxis, mapDatasetToRangeAxes, mapDatasetToRangeAxis, panDomainAxes, 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, setDomainPannable, setDomainTickBandPaint, setDomainZeroBaselinePaint, setDomainZeroBaselineStroke, setDomainZeroBaselineVisible, setFixedDomainAxisSpace, setFixedDomainAxisSpace, setFixedLegendItems, setFixedRangeAxisSpace, setQuadrantOrigin, setQuadrantPaint, setRangeAxes, setRangeAxis, setRangeAxis, setRangeAxis, setRangeAxisLocation, setRangeAxisLocation, setRangeAxisLocation, setRangeAxisLocation, setRangeCrosshairLockedOnData, setRangeCrosshairPaint, setRangeCrosshairStroke, setRangeCrosshairValue, setRangeCrosshairValue, setRangeCrosshairVisible, setRangeGridlinePaint, setRangeGridlineStroke, setRangeGridlinesVisible, setRangeMinorGridlinePaint, setRangeMinorGridlineStroke, setRangeMinorGridlinesVisible, setRangeTickBandPaint, setRangeZeroBaselinePaint, setRangeZeroBaselineStroke, setRangeZeroBaselineVisible, setRenderer, setRenderer, setRenderers, setSeriesRenderingOrder, setWeight, zoomDomainAxes, zoomDomainAxes, zoomDomainAxesMethods 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
-
CombinedDomainXYPlot
public CombinedDomainXYPlot()Default constructor. -
CombinedDomainXYPlot
Creates a new combined plot that shares a domain axis among multiple subplots.- Parameters:
domainAxis- the shared axis.
-
-
Method Details
-
getPlotType
Returns a string describing the type of plot.- Overrides:
getPlotTypein classXYPlot- Returns:
- The type of plot.
-
getGap
Returns the gap between subplots, measured in Java2D units.- Returns:
- The gap (in Java2D units).
- See Also:
-
setGap
Sets the amount of space between subplots and sends aPlotChangeEventto all registered listeners.- Parameters:
gap- the gap between subplots (in Java2D units).- See Also:
-
isRangePannable
Returnstrueif the range is pannable for at least one subplot, andfalseotherwise.- Specified by:
isRangePannablein interfacePannable- Overrides:
isRangePannablein classXYPlot- Returns:
- A boolean.
-
setRangePannable
Sets the flag, on each of the subplots, that controls whether or not the range is pannable.- Overrides:
setRangePannablein classXYPlot- Parameters:
pannable- the new flag value.
-
setOrientation
Sets the orientation for the plot (also changes the orientation for all the subplots to match).- Overrides:
setOrientationin classXYPlot- Parameters:
orientation- the orientation (nullnot allowed).- See Also:
-
setShadowGenerator
Sets the shadow generator for the plot (and all subplots) and sends aPlotChangeEventto all registered listeners.- Overrides:
setShadowGeneratorin classXYPlot- Parameters:
generator- the new generator (nullpermitted).
-
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 domain axis is shared between subplots, the JFreeChart code will only call this method for the domain values (although this is not checked/enforced).- Specified by:
getDataRangein interfaceValueAxisPlot- Overrides:
getDataRangein classXYPlot- Parameters:
axis- the axis.- Returns:
- The range (possibly
null).
-
add
Adds a subplot (with a default 'weight' of 1) and sends aPlotChangeEventto all registered listeners.The domain axis for the subplot will be set to
null. You must ensure that the subplot has a non-null range axis.- Parameters:
subplot- the subplot (nullnot permitted).
-
add
Adds a subplot with the specified weight and sends aPlotChangeEventto all registered listeners. The weight determines how much space is allocated to the subplot relative to all the other subplots.The domain axis for the subplot will be set to
null. You must ensure that the subplot has a non-null range axis.- Parameters:
subplot- the subplot (nullnot permitted).weight- the weight (must be >= 1).
-
remove
Removes a subplot from the combined chart and sends aPlotChangeEventto all registered listeners.- Parameters:
subplot- the subplot (nullnot 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 axis space required.- Overrides:
calculateAxisSpacein classXYPlot- Parameters:
g2- the graphics device.plotArea- the plot area.- Returns:
- The space.
-
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:
drawin classXYPlot- Parameters:
g2- the graphics device.area- the plot area (in Java2D space).anchor- an anchor point in Java2D space (nullpermitted).parentState- the state from the parent plot, if there is one (nullpermitted).info- collects chart drawing information (nullpermitted).
-
getLegendItems
Returns a collection of legend items for the plot.- Specified by:
getLegendItemsin interfaceLegendItemSource- Overrides:
getLegendItemsin classXYPlot- Returns:
- The legend items.
-
zoomRangeAxes
Multiplies the range on the range axis/axes by the specified factor.- Specified by:
zoomRangeAxesin interfaceZoomable- Overrides:
zoomRangeAxesin classXYPlot- Parameters:
factor- the zoom factor.info- the plot rendering info (nullnot permitted).source- the source point (nullnot permitted).- See Also:
-
zoomRangeAxes
public void zoomRangeAxes(double factor, PlotRenderingInfo state, Point2D source, boolean useAnchor) Multiplies the range on the range axis/axes by the specified factor.- Specified by:
zoomRangeAxesin interfaceZoomable- Overrides:
zoomRangeAxesin classXYPlot- Parameters:
factor- the zoom factor.state- the plot state.source- the source point (in Java2D coordinates).useAnchor- use source point as zoom anchor?- See Also:
-
zoomRangeAxes
public void zoomRangeAxes(double lowerPercent, double upperPercent, PlotRenderingInfo info, Point2D source) Zooms in on the range axes.- Specified by:
zoomRangeAxesin interfaceZoomable- Overrides:
zoomRangeAxesin classXYPlot- Parameters:
lowerPercent- the lower bound.upperPercent- the upper bound.info- the plot rendering info (nullnot permitted).source- the source point (nullnot permitted).- See Also:
-
panRangeAxes
Pans all range axes by the specified percentage.- Specified by:
panRangeAxesin interfacePannable- Overrides:
panRangeAxesin classXYPlot- Parameters:
panRange- the distance to pan (as a percentage of the axis length).info- the plot info (nullnot permitted).source- 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 (nullnot permitted).source- the source point (nullnot 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:
setRendererin classXYPlot- Parameters:
renderer- the new renderer.- See Also:
-
setFixedRangeAxisSpace
Sets the fixed range axis space and sends aPlotChangeEventto all registered listeners.- Overrides:
setFixedRangeAxisSpacein classXYPlot- Parameters:
space- the space (nullpermitted).- See Also:
-
setFixedRangeAxisSpaceForSubplots
Sets the size (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:
handleClickin classXYPlot- Parameters:
x- x-coordinate, where the click occurred.y- y-coordinate, where the click occurred.info- object containing information about the plot dimensions.
-
datasetChanged
Receives notification of a change to the plot's dataset.The axis ranges are updated if necessary.
- Specified by:
datasetChangedin interfaceDatasetChangeListener- Overrides:
datasetChangedin classXYPlot- Parameters:
event- information about the event (not used here).
-
plotChanged
Receives aPlotChangeEventand responds by notifying all listeners.- Specified by:
plotChangedin interfacePlotChangeListener- Parameters:
event- the event.
-
equals
Tests this plot for equality with another object. -
clone
Returns a clone of the annotation.- Specified by:
clonein interfacePublicCloneable- Overrides:
clonein classXYPlot- Returns:
- A clone.
- Throws:
CloneNotSupportedException- this class will not throw this exception, but subclasses (if any) might.
-