public class XYDifferenceRenderer extends AbstractXYItemRenderer implements XYItemRenderer, org.jfree.util.PublicCloneable
XYPlot that highlights the differences between two
series. The example shown here is generated by the
DifferenceChartDemo1.java program included in the JFreeChart
demo collection:

| Modifier and Type | Field and Description |
|---|---|
private java.awt.Shape |
legendLine
The shape to display in the legend item.
|
private java.awt.Paint |
negativePaint
The paint used to highlight negative differences (y(0) < y(1)).
|
private java.awt.Paint |
positivePaint
The paint used to highlight positive differences (y(0) > y(1)).
|
private boolean |
roundXCoordinates
This flag controls whether or not the x-coordinates (in Java2D space)
are rounded to integers.
|
private static long |
serialVersionUID
For serialization.
|
private boolean |
shapesVisible
Display shapes at each point?
|
DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, DEFAULT_PAINT, DEFAULT_SHAPE, DEFAULT_STROKE, DEFAULT_VALUE_LABEL_FONT, DEFAULT_VALUE_LABEL_PAINT, ZERO| Constructor and Description |
|---|
XYDifferenceRenderer()
Creates a new renderer with default attributes.
|
XYDifferenceRenderer(java.awt.Paint positivePaint,
java.awt.Paint negativePaint,
boolean shapes)
Creates a new renderer.
|
| Modifier and Type | Method and Description |
|---|---|
private boolean |
areSeriesDisjoint(XYDataset x_dataset)
Determines if the two (2) series are disjoint.
|
java.lang.Object |
clone()
Returns a clone of the renderer.
|
private void |
createPolygon(java.awt.Graphics2D x_graphics,
java.awt.geom.Rectangle2D x_dataArea,
XYPlot x_plot,
ValueAxis x_domainAxis,
ValueAxis x_rangeAxis,
boolean x_positive,
java.util.LinkedList x_xValues,
java.util.LinkedList x_yValues)
Draws the visual representation of a polygon
|
void |
drawItem(java.awt.Graphics2D g2,
XYItemRendererState state,
java.awt.geom.Rectangle2D dataArea,
PlotRenderingInfo info,
XYPlot plot,
ValueAxis domainAxis,
ValueAxis rangeAxis,
XYDataset dataset,
int series,
int item,
CrosshairState crosshairState,
int pass)
Draws the visual representation of a single data item.
|
protected void |
drawItemPass0(java.awt.Graphics2D x_graphics,
java.awt.geom.Rectangle2D x_dataArea,
PlotRenderingInfo x_info,
XYPlot x_plot,
ValueAxis x_domainAxis,
ValueAxis x_rangeAxis,
XYDataset x_dataset,
int x_series,
int x_item,
CrosshairState x_crosshairState)
Draws the visual representation of a single data item, first pass.
|
protected void |
drawItemPass1(java.awt.Graphics2D x_graphics,
java.awt.geom.Rectangle2D x_dataArea,
PlotRenderingInfo x_info,
XYPlot x_plot,
ValueAxis x_domainAxis,
ValueAxis x_rangeAxis,
XYDataset x_dataset,
int x_series,
int x_item,
CrosshairState x_crosshairState)
Draws the visual representation of a single data item, second pass.
|
boolean |
equals(java.lang.Object obj)
Tests this renderer for equality with an arbitrary object.
|
LegendItem |
getLegendItem(int datasetIndex,
int series)
Returns a default legend item for the specified series.
|
java.awt.Shape |
getLegendLine()
Returns the shape used to represent a line in the legend.
|
java.awt.Paint |
getNegativePaint()
Returns the paint used to highlight negative differences.
|
int |
getPassCount()
Returns
2, the number of passes required by the renderer. |
java.awt.Paint |
getPositivePaint()
Returns the paint used to highlight positive differences.
|
boolean |
getRoundXCoordinates()
Returns the flag that controls whether or not the x-coordinates (in
Java2D space) are rounded to integer values.
|
boolean |
getShapesVisible()
Returns a flag that controls whether or not shapes are drawn for each
data value.
|
XYItemRendererState |
initialise(java.awt.Graphics2D g2,
java.awt.geom.Rectangle2D dataArea,
XYPlot plot,
XYDataset data,
PlotRenderingInfo info)
Initialises the renderer and returns a state object that should be
passed to subsequent calls to the drawItem() method.
|
private boolean |
isEitherSeriesDegenerate(XYDataset x_dataset,
boolean x_impliedZeroSubtrahend)
Determines if a dataset is degenerate.
|
private void |
readObject(java.io.ObjectInputStream stream)
Provides serialization support.
|
void |
setLegendLine(java.awt.Shape line)
Sets the shape used as a line in each legend item and sends a
RendererChangeEvent to all registered listeners. |
void |
setNegativePaint(java.awt.Paint paint)
Sets the paint used to highlight negative differences.
|
void |
setPositivePaint(java.awt.Paint paint)
Sets the paint used to highlight positive differences and sends a
RendererChangeEvent to all registered listeners. |
void |
setRoundXCoordinates(boolean round)
Sets the flag that controls whether or not the x-coordinates (in
Java2D space) are rounded to integer values, and sends a
RendererChangeEvent to all registered listeners. |
void |
setShapesVisible(boolean flag)
Sets a flag that controls whether or not shapes are drawn for each
data value, and sends a
RendererChangeEvent to all registered
listeners. |
private void |
writeObject(java.io.ObjectOutputStream stream)
Provides serialization support.
|
addAnnotation, addAnnotation, addEntity, annotationChanged, calculateDomainMarkerTextAnchorPoint, drawAnnotations, drawDomainGridLine, drawDomainLine, drawDomainMarker, drawItemLabel, drawRangeLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, findDomainBounds, findDomainBounds, findRangeBounds, findRangeBounds, getAnnotations, getBaseItemLabelGenerator, getBaseToolTipGenerator, getDrawingSupplier, getItemLabelGenerator, getItemLabelGenerator, getLegendItemLabelGenerator, getLegendItems, getLegendItemToolTipGenerator, getLegendItemURLGenerator, getPlot, getSeriesItemLabelGenerator, getSeriesToolTipGenerator, getToolTipGenerator, getToolTipGenerator, getURLGenerator, isPointInRect, lineTo, moveTo, removeAnnotation, removeAnnotations, setBaseItemLabelGenerator, setBaseToolTipGenerator, setItemLabelGenerator, setLegendItemLabelGenerator, setLegendItemToolTipGenerator, setLegendItemURLGenerator, setPlot, setSeriesItemLabelGenerator, setSeriesToolTipGenerator, setToolTipGenerator, setURLGenerator, updateCrosshairValues, updateCrosshairValuesaddChangeListener, calculateLabelAnchorPoint, clearSeriesPaints, clearSeriesStrokes, fireChangeEvent, getAutoPopulateSeriesFillPaint, getAutoPopulateSeriesOutlinePaint, getAutoPopulateSeriesOutlineStroke, getAutoPopulateSeriesPaint, getAutoPopulateSeriesShape, getAutoPopulateSeriesStroke, getBaseCreateEntities, getBaseFillPaint, getBaseItemLabelFont, getBaseItemLabelPaint, getBaseItemLabelsVisible, getBaseLegendShape, getBaseLegendTextFont, getBaseLegendTextPaint, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseSeriesVisible, getBaseSeriesVisibleInLegend, getBaseShape, getBaseStroke, getCreateEntities, getDataBoundsIncludesVisibleSeriesOnly, getDefaultEntityRadius, getItemCreateEntity, getItemFillPaint, getItemLabelAnchorOffset, getItemLabelFont, getItemLabelFont, getItemLabelPaint, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getLegendShape, getLegendTextFont, getLegendTextPaint, getNegativeItemLabelPosition, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getPositiveItemLabelPosition, getSeriesCreateEntities, getSeriesFillPaint, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesVisible, getSeriesVisible, getSeriesVisibleInLegend, getSeriesVisibleInLegend, getTreatLegendShapeAsLine, hashCode, hasListener, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, lookupLegendShape, lookupLegendTextFont, lookupLegendTextPaint, lookupSeriesFillPaint, lookupSeriesOutlinePaint, lookupSeriesOutlineStroke, lookupSeriesPaint, lookupSeriesShape, lookupSeriesStroke, notifyListeners, removeChangeListener, setAutoPopulateSeriesFillPaint, setAutoPopulateSeriesOutlinePaint, setAutoPopulateSeriesOutlineStroke, setAutoPopulateSeriesPaint, setAutoPopulateSeriesShape, setAutoPopulateSeriesStroke, setBaseCreateEntities, setBaseCreateEntities, setBaseFillPaint, setBaseFillPaint, setBaseItemLabelFont, setBaseItemLabelFont, setBaseItemLabelPaint, setBaseItemLabelPaint, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseLegendShape, setBaseLegendTextFont, setBaseLegendTextPaint, setBaseNegativeItemLabelPosition, setBaseNegativeItemLabelPosition, setBaseOutlinePaint, setBaseOutlinePaint, setBaseOutlineStroke, setBaseOutlineStroke, setBasePaint, setBasePaint, setBasePositiveItemLabelPosition, setBasePositiveItemLabelPosition, setBaseSeriesVisible, setBaseSeriesVisible, setBaseSeriesVisibleInLegend, setBaseSeriesVisibleInLegend, setBaseShape, setBaseShape, setBaseStroke, setBaseStroke, setCreateEntities, setCreateEntities, setDataBoundsIncludesVisibleSeriesOnly, setDefaultEntityRadius, setFillPaint, setFillPaint, setItemLabelAnchorOffset, setItemLabelFont, setItemLabelFont, setItemLabelPaint, setItemLabelPaint, setItemLabelsVisible, setItemLabelsVisible, setItemLabelsVisible, setLegendShape, setLegendTextFont, setLegendTextPaint, setNegativeItemLabelPosition, setNegativeItemLabelPosition, setOutlinePaint, setOutlinePaint, setOutlineStroke, setOutlineStroke, setPaint, setPaint, setPositiveItemLabelPosition, setPositiveItemLabelPosition, setSeriesCreateEntities, setSeriesCreateEntities, setSeriesFillPaint, setSeriesFillPaint, setSeriesItemLabelFont, setSeriesItemLabelFont, setSeriesItemLabelPaint, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesOutlineStroke, setSeriesPaint, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesShape, setSeriesStroke, setSeriesStroke, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setShape, setShape, setStroke, setStroke, setTreatLegendShapeAsLinefinalize, getClass, notify, notifyAll, toString, wait, wait, waitaddAnnotation, addAnnotation, addChangeListener, drawAnnotations, drawDomainGridLine, drawDomainMarker, drawRangeLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, findDomainBounds, findRangeBounds, getBaseItemLabelFont, getBaseItemLabelGenerator, getBaseItemLabelPaint, getBaseItemLabelsVisible, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseSeriesVisible, getBaseSeriesVisibleInLegend, getBaseShape, getBaseStroke, getBaseToolTipGenerator, getItemLabelFont, getItemLabelFont, getItemLabelGenerator, getItemLabelPaint, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getLegendItemLabelGenerator, getNegativeItemLabelPosition, getNegativeItemLabelPosition, getPlot, getPositiveItemLabelPosition, getPositiveItemLabelPosition, getSeriesItemLabelFont, getSeriesItemLabelGenerator, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesToolTipGenerator, getSeriesVisible, getSeriesVisible, getSeriesVisibleInLegend, getSeriesVisibleInLegend, getToolTipGenerator, getURLGenerator, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, removeAnnotation, removeAnnotations, removeChangeListener, setBaseItemLabelFont, setBaseItemLabelGenerator, setBaseItemLabelPaint, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseNegativeItemLabelPosition, setBaseNegativeItemLabelPosition, setBaseOutlinePaint, setBaseOutlineStroke, setBasePaint, setBasePositiveItemLabelPosition, setBasePositiveItemLabelPosition, setBaseSeriesVisible, setBaseSeriesVisible, setBaseSeriesVisibleInLegend, setBaseSeriesVisibleInLegend, setBaseShape, setBaseStroke, setBaseToolTipGenerator, setItemLabelFont, setItemLabelGenerator, setItemLabelPaint, setItemLabelsVisible, setItemLabelsVisible, setItemLabelsVisible, setLegendItemLabelGenerator, setNegativeItemLabelPosition, setNegativeItemLabelPosition, setOutlinePaint, setOutlineStroke, setPaint, setPlot, setPositiveItemLabelPosition, setPositiveItemLabelPosition, setSeriesItemLabelFont, setSeriesItemLabelGenerator, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesStroke, setSeriesToolTipGenerator, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setShape, setStroke, setToolTipGenerator, setURLGeneratorgetLegendItemsprivate static final long serialVersionUID
private transient java.awt.Paint positivePaint
private transient java.awt.Paint negativePaint
private boolean shapesVisible
private transient java.awt.Shape legendLine
private boolean roundXCoordinates
public XYDifferenceRenderer()
public XYDifferenceRenderer(java.awt.Paint positivePaint,
java.awt.Paint negativePaint,
boolean shapes)
positivePaint - the highlight color for positive differences
(null not permitted).negativePaint - the highlight color for negative differences
(null not permitted).shapes - draw shapes?public java.awt.Paint getPositivePaint()
null).setPositivePaint(Paint)public void setPositivePaint(java.awt.Paint paint)
RendererChangeEvent to all registered listeners.paint - the paint (null not permitted).getPositivePaint()public java.awt.Paint getNegativePaint()
null).setNegativePaint(Paint)public void setNegativePaint(java.awt.Paint paint)
paint - the paint (null not permitted).getNegativePaint()public boolean getShapesVisible()
setShapesVisible(boolean)public void setShapesVisible(boolean flag)
RendererChangeEvent to all registered
listeners.flag - the flag.getShapesVisible()public java.awt.Shape getLegendLine()
null).setLegendLine(Shape)public void setLegendLine(java.awt.Shape line)
RendererChangeEvent to all registered listeners.line - the line (null not permitted).getLegendLine()public boolean getRoundXCoordinates()
setRoundXCoordinates(boolean)public void setRoundXCoordinates(boolean round)
RendererChangeEvent to all registered listeners.round - the new flag value.getRoundXCoordinates()public XYItemRendererState initialise(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)
initialise in interface XYItemRendererinitialise in class AbstractXYItemRendererg2 - the graphics device.dataArea - the area inside the axes.plot - the plot.data - the data.info - an optional info collection object to return data back to
the caller.public int getPassCount()
2, the number of passes required by the renderer.
The XYPlot will run through the dataset this number of times.getPassCount in interface XYItemRenderergetPassCount in class AbstractXYItemRendererpublic void drawItem(java.awt.Graphics2D g2,
XYItemRendererState state,
java.awt.geom.Rectangle2D dataArea,
PlotRenderingInfo info,
XYPlot plot,
ValueAxis domainAxis,
ValueAxis rangeAxis,
XYDataset dataset,
int series,
int item,
CrosshairState crosshairState,
int pass)
drawItem in interface XYItemRendererg2 - the graphics device.state - the renderer state.dataArea - the area within which the data is being drawn.info - collects information about the drawing.plot - the plot (can be used to obtain standard color
information etc).domainAxis - the domain (horizontal) axis.rangeAxis - the range (vertical) axis.dataset - the dataset.series - the series index (zero-based).item - the item index (zero-based).crosshairState - crosshair information for the plot
(null permitted).pass - the pass index.protected void drawItemPass0(java.awt.Graphics2D x_graphics,
java.awt.geom.Rectangle2D x_dataArea,
PlotRenderingInfo x_info,
XYPlot x_plot,
ValueAxis x_domainAxis,
ValueAxis x_rangeAxis,
XYDataset x_dataset,
int x_series,
int x_item,
CrosshairState x_crosshairState)
x_graphics - the graphics device.x_dataArea - the area within which the data is being drawn.x_info - collects information about the drawing.x_plot - the plot (can be used to obtain standard color
information etc).x_domainAxis - the domain (horizontal) axis.x_rangeAxis - the range (vertical) axis.x_dataset - the dataset.x_series - the series index (zero-based).x_item - the item index (zero-based).x_crosshairState - crosshair information for the plot
(null permitted).protected void drawItemPass1(java.awt.Graphics2D x_graphics,
java.awt.geom.Rectangle2D x_dataArea,
PlotRenderingInfo x_info,
XYPlot x_plot,
ValueAxis x_domainAxis,
ValueAxis x_rangeAxis,
XYDataset x_dataset,
int x_series,
int x_item,
CrosshairState x_crosshairState)
x_graphics - the graphics device.x_dataArea - the area within which the data is being drawn.x_info - collects information about the drawing.x_plot - the plot (can be used to obtain standard color
information etc).x_domainAxis - the domain (horizontal) axis.x_rangeAxis - the range (vertical) axis.x_dataset - the dataset.x_series - the series index (zero-based).x_item - the item index (zero-based).x_crosshairState - crosshair information for the plot
(null permitted).private boolean isEitherSeriesDegenerate(XYDataset x_dataset, boolean x_impliedZeroSubtrahend)
x_dataset - the dataset.x_impliedZeroSubtrahend - if false, do not check the subtrahendprivate boolean areSeriesDisjoint(XYDataset x_dataset)
x_dataset - the dataset.private void createPolygon(java.awt.Graphics2D x_graphics,
java.awt.geom.Rectangle2D x_dataArea,
XYPlot x_plot,
ValueAxis x_domainAxis,
ValueAxis x_rangeAxis,
boolean x_positive,
java.util.LinkedList x_xValues,
java.util.LinkedList x_yValues)
x_graphics - the graphics device.x_dataArea - the area within which the data is being drawn.x_plot - the plot (can be used to obtain standard color
information etc).x_domainAxis - the domain (horizontal) axis.x_rangeAxis - the range (vertical) axis.x_positive - indicates if the polygon is positive (true) or
negative (false).x_xValues - a linked list of the x values (expects values to be
of type Double).x_yValues - a linked list of the y values (expects values to be
of type Double).public LegendItem getLegendItem(int datasetIndex, int series)
getLegendItem in interface XYItemRenderergetLegendItem in class AbstractXYItemRendererdatasetIndex - the dataset index (zero-based).series - the series index (zero-based).public boolean equals(java.lang.Object obj)
equals in class AbstractXYItemRendererobj - the object (null permitted).public java.lang.Object clone()
throws java.lang.CloneNotSupportedException
clone in interface org.jfree.util.PublicCloneableclone in class AbstractXYItemRendererjava.lang.CloneNotSupportedException - if the renderer cannot be cloned.private void writeObject(java.io.ObjectOutputStream stream)
throws java.io.IOException
stream - the output stream.java.io.IOException - if there is an I/O error.private void readObject(java.io.ObjectInputStream stream)
throws java.io.IOException,
java.lang.ClassNotFoundException
stream - the input stream.java.io.IOException - if there is an I/O error.java.lang.ClassNotFoundException - if there is a classpath problem.