Class ContourPlot

java.lang.Object
org.jfree.chart.plot.Plot
org.jfree.chart.plot.ContourPlot
All Implemented Interfaces:
PropertyChangeListener, Serializable, Cloneable, EventListener, AxisChangeListener, ContourValuePlot, ValueAxisPlot, DatasetChangeListener

public class ContourPlot
extends Plot
implements ContourValuePlot, ValueAxisPlot, PropertyChangeListener, Serializable, Cloneable
A class for creating shaded contours.
Author:
David M. O'Donnell
See Also:
Serialized Form
  • Constructor Details

    • ContourPlot

      public ContourPlot​(ContourDataset dataset, ValueAxis domainAxis, ValueAxis rangeAxis, ColorBar colorBar)
      Constructs a contour plot with the specified axes (other attributes take default values).
      Parameters:
      dataset - The dataset.
      domainAxis - The domain axis.
      rangeAxis - The range axis.
      colorBar - The z-axis axis.
  • Method Details

    • getColorBarLocation

      public org.jfree.ui.RectangleEdge getColorBarLocation()
      Returns the color bar location.
      Returns:
      The color bar location.
    • setColorBarLocation

      public void setColorBarLocation​(org.jfree.ui.RectangleEdge edge)
      Sets the color bar location and sends a PlotChangeEvent to all registered listeners.
      Parameters:
      edge - the location.
    • getDataset

      public ContourDataset getDataset()
      Returns the primary dataset for the plot.
      Returns:
      The primary dataset (possibly null).
    • setDataset

      public void setDataset​(ContourDataset dataset)
      Sets the dataset for the plot, replacing the existing dataset if there is one.
      Parameters:
      dataset - the dataset (null permitted).
    • getContourDataset

      public ContourDataset getContourDataset()
      Deprecated.
      Use the getDataset() method instead.
      A convenience method that returns the dataset for the plot, cast as a ContourDataset.
      Returns:
      The dataset for the plot, cast as an ContourDataset.
    • getDomainAxis

      public ValueAxis getDomainAxis()
      Returns the domain axis for the plot.
      Returns:
      The domain axis.
    • setDomainAxis

      public void setDomainAxis​(ValueAxis axis)
      Sets the domain axis for the plot (this must be compatible with the plot type or an exception is thrown).
      Parameters:
      axis - The new axis.
    • getRangeAxis

      public ValueAxis getRangeAxis()
      Returns the range axis for the plot.
      Returns:
      The range axis.
    • setRangeAxis

      public void setRangeAxis​(ValueAxis axis)
      Sets the range axis for the plot.

      An exception is thrown if the new axis and the plot are not mutually compatible.

      Parameters:
      axis - The new axis (null permitted).
    • setColorBarAxis

      public void setColorBarAxis​(ColorBar axis)
      Sets the colorbar for the plot.
      Parameters:
      axis - The new axis (null permitted).
    • addDomainMarker

      public void addDomainMarker​(Marker marker)
      Adds a marker for the domain axis.

      Typically a marker will be drawn by the renderer as a line perpendicular to the range axis, however this is entirely up to the renderer.

      Parameters:
      marker - the marker.
    • clearDomainMarkers

      public void clearDomainMarkers()
      Clears all the domain markers.
    • addRangeMarker

      public void addRangeMarker​(Marker marker)
      Adds a marker for the range axis.

      Typically a marker will be drawn by the renderer as a line perpendicular to the range axis, however this is entirely up to the renderer.

      Parameters:
      marker - The marker.
    • clearRangeMarkers

      public void clearRangeMarkers()
      Clears all the range markers.
    • addAnnotation

      public void addAnnotation​(XYAnnotation annotation)
      Adds an annotation to the plot.
      Parameters:
      annotation - the annotation.
    • clearAnnotations

      public void clearAnnotations()
      Clears all the annotations.
    • isCompatibleDomainAxis

      public boolean isCompatibleDomainAxis​(ValueAxis axis)
      Checks the compatibility of a domain axis, returning true if the axis is compatible with the plot, and false otherwise.
      Parameters:
      axis - The proposed axis.
      Returns:
      true if the axis is compatible with the plot.
    • draw

      public void draw​(Graphics2D g2, Rectangle2D plotArea, PlotState parentState, PlotRenderingInfo info)
      Draws the plot on a Java 2D graphics device (such as the screen or a printer).

      The optional info argument collects information about the rendering of the plot (dimensions, tooltip information etc). Just pass in null if you do not need this information.

      Specified by:
      draw in class Plot
      Parameters:
      g2 - the graphics device.
      plotArea - the area within which the plot (including axis labels) should be drawn.
      parentState - the state from the parent plot, if there is one.
      info - collects chart drawing information (null permitted).
    • render

      public void render​(Graphics2D g2, Rectangle2D dataArea, PlotRenderingInfo info, CrosshairState crosshairState)
      Draws a representation of the data within the dataArea region, using the current renderer.

      The info and crosshairState arguments may be null.

      Parameters:
      g2 - the graphics device.
      dataArea - the region in which the data is to be drawn.
      info - an optional object for collection dimension information.
      crosshairState - an optional object for collecting crosshair info.
    • contourRenderer

      public void contourRenderer​(Graphics2D g2, Rectangle2D dataArea, PlotRenderingInfo info, ContourPlot plot, ValueAxis horizontalAxis, ValueAxis verticalAxis, ColorBar colorBar, ContourDataset data, CrosshairState crosshairState)
      Fills the plot.
      Parameters:
      g2 - the graphics device.
      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).
      horizontalAxis - the domain (horizontal) axis.
      verticalAxis - the range (vertical) axis.
      colorBar - the color bar axis.
      data - the dataset.
      crosshairState - information about crosshairs on a plot.
    • pointRenderer

      public void pointRenderer​(Graphics2D g2, Rectangle2D dataArea, PlotRenderingInfo info, ContourPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, ColorBar colorBar, ContourDataset data, CrosshairState crosshairState)
      Draws the visual representation of a single data item.
      Parameters:
      g2 - the graphics device.
      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.
      colorBar - the color bar axis.
      data - the dataset.
      crosshairState - information about crosshairs on a plot.
    • handleClick

      public void handleClick​(int x, int y, PlotRenderingInfo info)
      Handles a 'click' on the plot by updating the anchor values...
      Overrides:
      handleClick in class Plot
      Parameters:
      x - x-coordinate, where the click occured.
      y - y-coordinate, where the click occured.
      info - An object for collection dimension information.
    • zoom

      public void zoom​(double percent)
      Zooms the axis ranges by the specified percentage about the anchor point.
      Overrides:
      zoom in class Plot
      Parameters:
      percent - The amount of the zoom.
    • getPlotType

      public String getPlotType()
      Returns the plot type as a string.
      Specified by:
      getPlotType in class Plot
      Returns:
      A short string describing the type of plot.
    • getDataRange

      public Range getDataRange​(ValueAxis axis)
      Returns the range for an axis.
      Specified by:
      getDataRange in interface ValueAxisPlot
      Parameters:
      axis - the axis.
      Returns:
      The range for an axis.
    • getContourDataRange

      public Range getContourDataRange()
      Returns the range for the Contours.
      Specified by:
      getContourDataRange in interface ContourValuePlot
      Returns:
      The range for the Contours (z-axis).
    • propertyChange

      public void propertyChange​(PropertyChangeEvent event)
      Notifies all registered listeners of a property change.

      One source of property change events is the plot's renderer.

      Specified by:
      propertyChange in interface PropertyChangeListener
      Parameters:
      event - Information about the property change.
    • datasetChanged

      public void datasetChanged​(DatasetChangeEvent event)
      Receives notification of a change to the plot's dataset.

      The chart reacts by passing on a chart change event to all registered listeners.

      Specified by:
      datasetChanged in interface DatasetChangeListener
      Overrides:
      datasetChanged in class Plot
      Parameters:
      event - Information about the event (not used here).
    • getColorBar

      public ColorBar getColorBar()
      Returns the colorbar.
      Returns:
      The colorbar.
    • isDomainCrosshairVisible

      public boolean isDomainCrosshairVisible()
      Returns a flag indicating whether or not the domain crosshair is visible.
      Returns:
      the flag.
    • setDomainCrosshairVisible

      public void setDomainCrosshairVisible​(boolean flag)
      Sets the flag indicating whether or not the domain crosshair is visible.
      Parameters:
      flag - the new value of the flag.
    • isDomainCrosshairLockedOnData

      public boolean isDomainCrosshairLockedOnData()
      Returns a flag indicating whether or not the crosshair should "lock-on" to actual data values.
      Returns:
      the flag.
    • setDomainCrosshairLockedOnData

      public void setDomainCrosshairLockedOnData​(boolean flag)
      Sets the flag indicating whether or not the domain crosshair should "lock-on" to actual data values.
      Parameters:
      flag - the flag.
    • getDomainCrosshairValue

      public double getDomainCrosshairValue()
      Returns the domain crosshair value.
      Returns:
      The value.
    • setDomainCrosshairValue

      public void setDomainCrosshairValue​(double value)
      Sets the domain crosshair value.

      Registered listeners are notified that the plot has been modified, but only if the crosshair is visible.

      Parameters:
      value - the new value.
    • setDomainCrosshairValue

      public void setDomainCrosshairValue​(double value, boolean notify)
      Sets the domain crosshair value.

      Registered listeners are notified that the axis has been modified, but only if the crosshair is visible.

      Parameters:
      value - the new value.
      notify - a flag that controls whether or not listeners are notified.
    • getDomainCrosshairStroke

      public Stroke getDomainCrosshairStroke()
      Returns the Stroke used to draw the crosshair (if visible).
      Returns:
      the crosshair stroke.
    • setDomainCrosshairStroke

      public void setDomainCrosshairStroke​(Stroke stroke)
      Sets the Stroke used to draw the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
      Parameters:
      stroke - the new crosshair stroke.
    • getDomainCrosshairPaint

      public Paint getDomainCrosshairPaint()
      Returns the domain crosshair color.
      Returns:
      the crosshair color.
    • setDomainCrosshairPaint

      public void setDomainCrosshairPaint​(Paint paint)
      Sets the Paint used to color the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
      Parameters:
      paint - the new crosshair paint.
    • isRangeCrosshairVisible

      public boolean isRangeCrosshairVisible()
      Returns a flag indicating whether or not the range crosshair is visible.
      Returns:
      the flag.
    • setRangeCrosshairVisible

      public void setRangeCrosshairVisible​(boolean flag)
      Sets the flag indicating whether or not the range crosshair is visible.
      Parameters:
      flag - the new value of the flag.
    • isRangeCrosshairLockedOnData

      public boolean isRangeCrosshairLockedOnData()
      Returns a flag indicating whether or not the crosshair should "lock-on" to actual data values.
      Returns:
      the flag.
    • setRangeCrosshairLockedOnData

      public void setRangeCrosshairLockedOnData​(boolean flag)
      Sets the flag indicating whether or not the range crosshair should "lock-on" to actual data values.
      Parameters:
      flag - the flag.
    • getRangeCrosshairValue

      public double getRangeCrosshairValue()
      Returns the range crosshair value.
      Returns:
      The value.
    • setRangeCrosshairValue

      public void setRangeCrosshairValue​(double value)
      Sets the domain crosshair value.

      Registered listeners are notified that the plot has been modified, but only if the crosshair is visible.

      Parameters:
      value - the new value.
    • setRangeCrosshairValue

      public void setRangeCrosshairValue​(double value, boolean notify)
      Sets the range crosshair value.

      Registered listeners are notified that the axis has been modified, but only if the crosshair is visible.

      Parameters:
      value - the new value.
      notify - a flag that controls whether or not listeners are notified.
    • getRangeCrosshairStroke

      public Stroke getRangeCrosshairStroke()
      Returns the Stroke used to draw the crosshair (if visible).
      Returns:
      the crosshair stroke.
    • setRangeCrosshairStroke

      public void setRangeCrosshairStroke​(Stroke stroke)
      Sets the Stroke used to draw the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
      Parameters:
      stroke - the new crosshair stroke.
    • getRangeCrosshairPaint

      public Paint getRangeCrosshairPaint()
      Returns the range crosshair color.
      Returns:
      the crosshair color.
    • setRangeCrosshairPaint

      public void setRangeCrosshairPaint​(Paint paint)
      Sets the Paint used to color the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
      Parameters:
      paint - the new crosshair paint.
    • getToolTipGenerator

      public ContourToolTipGenerator getToolTipGenerator()
      Returns the tool tip generator.
      Returns:
      the tool tip generator (possibly null).
    • setToolTipGenerator

      public void setToolTipGenerator​(ContourToolTipGenerator generator)
      Sets the tool tip generator.
      Parameters:
      generator - the tool tip generator (null permitted).
    • getURLGenerator

      public XYURLGenerator getURLGenerator()
      Returns the URL generator for HTML image maps.
      Returns:
      the URL generator (possibly null).
    • setURLGenerator

      public void setURLGenerator​(XYURLGenerator urlGenerator)
      Sets the URL generator for HTML image maps.
      Parameters:
      urlGenerator - the URL generator (null permitted).
    • drawDomainMarker

      public void drawDomainMarker​(Graphics2D g2, ContourPlot plot, ValueAxis domainAxis, Marker marker, Rectangle2D dataArea)
      Draws a vertical line on the chart to represent a 'range marker'.
      Parameters:
      g2 - the graphics device.
      plot - the plot.
      domainAxis - the domain axis.
      marker - the marker line.
      dataArea - the axis data area.
    • drawRangeMarker

      public void drawRangeMarker​(Graphics2D g2, ContourPlot plot, ValueAxis rangeAxis, Marker marker, Rectangle2D dataArea)
      Draws a horizontal line across the chart to represent a 'range marker'.
      Parameters:
      g2 - the graphics device.
      plot - the plot.
      rangeAxis - the range axis.
      marker - the marker line.
      dataArea - the axis data area.
    • getClipPath

      public ClipPath getClipPath()
      Returns the clipPath.
      Returns:
      ClipPath
    • setClipPath

      public void setClipPath​(ClipPath clipPath)
      Sets the clipPath.
      Parameters:
      clipPath - The clipPath to set
    • getPtSizePct

      public double getPtSizePct()
      Returns the ptSizePct.
      Returns:
      double
    • isRenderAsPoints

      public boolean isRenderAsPoints()
      Returns the renderAsPoints.
      Returns:
      boolean
    • setPtSizePct

      public void setPtSizePct​(double ptSizePct)
      Sets the ptSizePct.
      Parameters:
      ptSizePct - The ptSizePct to set
    • setRenderAsPoints

      public void setRenderAsPoints​(boolean renderAsPoints)
      Sets the renderAsPoints.
      Parameters:
      renderAsPoints - The renderAsPoints to set
    • axisChanged

      public void axisChanged​(AxisChangeEvent event)
      Receives notification of a change to one of the plot's axes.
      Specified by:
      axisChanged in interface AxisChangeListener
      Overrides:
      axisChanged in class Plot
      Parameters:
      event - information about the event.
    • visibleRange

      public Range visibleRange​(ContourDataset data, Range x, Range y)
      Returns the visible z-range.
      Parameters:
      data - the dataset.
      x - the x range.
      y - the y range.
      Returns:
      The range.
    • getMissingPaint

      public Paint getMissingPaint()
      Returns the missingPaint.
      Returns:
      Paint
    • setMissingPaint

      public void setMissingPaint​(Paint missingPaint)
      Sets the missingPaint.
      Parameters:
      missingPaint - The missingPaint to set
    • zoomHorizontalAxes

      public void zoomHorizontalAxes​(double factor)
      Multiplies the range on the horizontal axis/axes by the specified factor.
      Specified by:
      zoomHorizontalAxes in interface ValueAxisPlot
      Parameters:
      factor - the zoom factor.
    • zoomHorizontalAxes

      public void zoomHorizontalAxes​(double lowerPercent, double upperPercent)
      Zooms the horizontal axes (not yet implemented).
      Specified by:
      zoomHorizontalAxes in interface ValueAxisPlot
      Parameters:
      lowerPercent - the new lower bound.
      upperPercent - the new upper bound.
    • zoomVerticalAxes

      public void zoomVerticalAxes​(double factor)
      Multiplies the range on the vertical axis/axes by the specified factor.
      Specified by:
      zoomVerticalAxes in interface ValueAxisPlot
      Parameters:
      factor - the zoom factor.
    • zoomVerticalAxes

      public void zoomVerticalAxes​(double lowerPercent, double upperPercent)
      Zooms the vertical axes (not yet implemented).
      Specified by:
      zoomVerticalAxes in interface ValueAxisPlot
      Parameters:
      lowerPercent - the new lower bound.
      upperPercent - the new upper bound.
    • clone

      public Object clone() throws CloneNotSupportedException
      Extends plot cloning to this plot type
      Overrides:
      clone in class Plot
      Returns:
      A clone.
      Throws:
      CloneNotSupportedException - if some component of the plot does not support cloning.
      See Also:
      Plot.clone()