Class ContourPlot

java.lang.Object
org.opensourcephysics.display2d.ContourPlot
All Implemented Interfaces:
Drawable, Measurable, Plot2D

public class ContourPlot extends Object implements Plot2D
ContourPlot draws a contour plot of a scalar field. Contour uses code from the Surface Plotter package by Yanto Suryono.
Version:
1.0
Author:
Wolfgang Christian
  • Field Details

    • zMap

      protected ZExpansion zMap
    • colorMap

      protected ColorMapper colorMap
    • interpolateLargeGrids

      protected boolean interpolateLargeGrids
  • Constructor Details

    • ContourPlot

      public ContourPlot()
      Constructs a ContourPlot without any data.
    • ContourPlot

      public ContourPlot(GridData _griddata)
      Constructs a ContourPlot that renders the given GridData.
      Parameters:
      _griddata - data storage
  • Method Details

    • indexToX

      public double indexToX(int i)
      Gets the x coordinate for the given index.
      Specified by:
      indexToX in interface Plot2D
      Parameters:
      i - int
      Returns:
      double the x coordinate
    • indexToY

      public double indexToY(int i)
      Gets the y coordinate for the given index.
      Specified by:
      indexToY in interface Plot2D
      Parameters:
      i - int
      Returns:
      double the y coordinate
    • xToIndex

      public int xToIndex(double x)
      Gets closest index from the given x world coordinate.
      Specified by:
      xToIndex in interface Plot2D
      Parameters:
      x - double the coordinate
      Returns:
      int the index
    • yToIndex

      public int yToIndex(double y)
      Gets closest index from the given y world coordinate.
      Specified by:
      yToIndex in interface Plot2D
      Parameters:
      y - double the coordinate
      Returns:
      int the index
    • setAll

      public void setAll(Object obj)
      Sets the data to new values. The grid is resized to fit the new data if needed.
      Specified by:
      setAll in interface Plot2D
      Parameters:
      obj - double[][] the new values
    • setAll

      public void setAll(Object obj, double xmin, double xmax, double ymin, double ymax)
      Sets the values and the scale. The grid is resized to fit the new data if needed.
      Specified by:
      setAll in interface Plot2D
      Parameters:
      obj - array of new values
      xmin - double
      xmax - double
      ymin - double
      ymax - double
    • getGridData

      public GridData getGridData()
      Gets the GridData object.
      Specified by:
      getGridData in interface Plot2D
      Returns:
      GridData
    • setGridData

      public void setGridData(GridData _griddata)
      Sets the data storage to the given value.
      Specified by:
      setGridData in interface Plot2D
      Parameters:
      _griddata -
    • setVisible

      public void setVisible(boolean isVisible)
      Sets the visibility of the contour plot. Drawing will be disabled if visible is false.
      Specified by:
      setVisible in interface Plot2D
      Parameters:
      isVisible -
    • showLegend

      public JFrame showLegend()
      Shows how values map to colors.
      Specified by:
      showLegend in interface Plot2D
    • setShowGridLines

      public void setShowGridLines(boolean showLines)
      Shows the contour lines.
      Specified by:
      setShowGridLines in interface Plot2D
      Parameters:
      showLines -
    • setGridLineColor

      public void setGridLineColor(Color color)
      Sets the contour line color. The default line color is dark green.
      Specified by:
      setGridLineColor in interface Plot2D
      Parameters:
      color -
    • setShowColorLevels

      public void setShowColorLevels(boolean show)
    • draw

      public void draw(DrawingPanel panel, Graphics g)
      Paint the contour.
      Specified by:
      draw in interface Drawable
      Parameters:
      g -
    • setAutoscaleZ

      public void setAutoscaleZ(boolean isAutoscale, double floor, double ceil)
      Sets the autoscale flag and the floor and ceiling values. If autoscaling is true, then the min and max values of z are set using the data. If autoscaling is false, then floor and ceiling values become the max and min. Values below min map to the first color; values above max map to the last color.
      Specified by:
      setAutoscaleZ in interface Plot2D
      Parameters:
      isAutoscale -
      floor -
      ceil -
    • setSymmetricZ

      public void setSymmetricZ(boolean symmetric)
      Forces the z-scale to be symmetric about zero. Forces zmax to be positive and zmin=-zmax when in autoscale mode.
      Specified by:
      setSymmetricZ in interface Plot2D
      Parameters:
      symmetric -
    • isSymmetricZ

      public boolean isSymmetricZ()
      Gets the symmetric z flag.
      Specified by:
      isSymmetricZ in interface Plot2D
    • setInterpolateLargeGrids

      public void setInterpolateLargeGrids(boolean interpolate)
      Sets flag to interpolates a large grid onto a smaller grid to speed the computation of contour lines.
      Parameters:
      interpolate - boolean
    • isInterpolateLargeGrids

      public boolean isInterpolateLargeGrids()
      Retruns true if plot interpolates a large grid onto a smaller grid to speed the computation of contour lines.
      Returns:
      boolean
    • setExpandedZ

      public void setExpandedZ(boolean expanded, double expansionFactor)
      Expands the z scale so as to enhance values close to zero.
      Specified by:
      setExpandedZ in interface Plot2D
      Parameters:
      expanded - boolean
      expansionFactor - double
    • isAutoscaleZ

      public boolean isAutoscaleZ()
      Gets the autoscale flag for z.
      Specified by:
      isAutoscaleZ in interface Plot2D
      Returns:
      boolean
    • getFloor

      public double getFloor()
      Gets the floor for scaling the z data.
      Specified by:
      getFloor in interface Plot2D
      Returns:
      double
    • getCeiling

      public double getCeiling()
      Gets the ceiling for scaling the z data.
      Specified by:
      getCeiling in interface Plot2D
      Returns:
      double
    • update

      public void update()
      Updates the contour data.
      Specified by:
      update in interface Plot2D
    • setColorPalette

      public void setColorPalette(Color[] colors)
      Determines the palette type that will be used.
      Specified by:
      setColorPalette in interface Plot2D
      Parameters:
      colors - Color[]
    • setPaletteType

      public void setPaletteType(int mode)
      Sets the type of palette. Palette types are defined in the ColorMapper class and include: SPECTRUM, GRAYSCALE, and DUALSHADE.
      Specified by:
      setPaletteType in interface Plot2D
      Parameters:
      mode -
    • setFloorCeilColor

      public void setFloorCeilColor(Color floorColor, Color ceilColor)
      Sets the floor, ceiling, and line colors.
      Specified by:
      setFloorCeilColor in interface Plot2D
      Parameters:
      floorColor -
      ceilColor -
    • setIndexes

      public void setIndexes(int[] indexes)
      Sets the indexes for the data components that will be plotted.
      Specified by:
      setIndexes in interface Plot2D
      Parameters:
      indexes - the sample-component indexes
    • setNumberOfLevels

      public void setNumberOfLevels(int n)
      Sets the number of contour levels.
      Parameters:
      n - number of levels.
    • getXMin

      public double getXMin()
      Description copied from interface: Measurable
      Gets the minimum x needed to draw this object.
      Specified by:
      getXMin in interface Measurable
      Returns:
      minimum
    • getXMax

      public double getXMax()
      Description copied from interface: Measurable
      Gets the maximum x needed to draw this object.
      Specified by:
      getXMax in interface Measurable
      Returns:
      maximum
    • getYMin

      public double getYMin()
      Description copied from interface: Measurable
      Gets the minimum y needed to draw this object.
      Specified by:
      getYMin in interface Measurable
      Returns:
      minimum
    • getYMax

      public double getYMax()
      Description copied from interface: Measurable
      Gets the maximum y needed to draw this object.
      Specified by:
      getYMax in interface Measurable
      Returns:
      minimum
    • isMeasured

      public boolean isMeasured()
      Description copied from interface: Measurable
      Determines if information is available to set min/max values. Objects that store data should return false if data is null.
      Specified by:
      isMeasured in interface Measurable
      Returns:
      true if min/max values are valid
    • getLoader

      public static XML.ObjectLoader getLoader()
      Gets an XML.ObjectLoader to save and load data for this program.
      Returns:
      the object loader