org.opensourcephysics.display2d
Class ContourPlot

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

public class ContourPlot
extends java.lang.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 Summary
protected  ColorMapper colorMap
           
protected  boolean interpolateLargeGrids
           
protected  ZExpansion zMap
           
 
Fields inherited from interface org.opensourcephysics.display2d.Plot2D
CONTOUR_PLOT, GRID_PLOT, INTERPOLATED_PLOT, SURFACE_PLOT
 
Constructor Summary
ContourPlot()
          Constructs a ContourPlot without any data.
ContourPlot(GridData _griddata)
          Constructs a ContourPlot that renders the given GridData.
 
Method Summary
 void draw(DrawingPanel panel, java.awt.Graphics g)
          Paint the contour.
 double getCeiling()
          Gets the ceiling for scaling the z data.
 double getFloor()
          Gets the floor for scaling the z data.
 GridData getGridData()
          Gets the GridData object.
static XML.ObjectLoader getLoader()
          Gets an XML.ObjectLoader to save and load data for this program.
 double getXMax()
          Gets the maximum x needed to draw this object.
 double getXMin()
          Gets the minimum x needed to draw this object.
 double getYMax()
          Gets the maximum y needed to draw this object.
 double getYMin()
          Gets the minimum y needed to draw this object.
 double indexToX(int i)
          Gets the x coordinate for the given index.
 double indexToY(int i)
          Gets the y coordinate for the given index.
 boolean isAutoscaleZ()
          Gets the autoscale flag for z.
 boolean isInterpolateLargeGrids()
          Retruns true if plot interpolates a large grid onto a smaller grid to speed the computation of contour lines.
 boolean isMeasured()
          Determines if information is available to set min/max values.
 boolean isSymmetricZ()
          Gets the symmetric z flag.
 void setAll(java.lang.Object obj)
          Sets the data to new values.
 void setAll(java.lang.Object obj, double xmin, double xmax, double ymin, double ymax)
          Sets the values and the scale.
 void setAutoscaleZ(boolean isAutoscale, double floor, double ceil)
          Sets the autoscale flag and the floor and ceiling values.
 void setColorPalette(java.awt.Color[] colors)
          Determines the palette type that will be used.
 void setExpandedZ(boolean expanded, double expansionFactor)
          Expands the z scale so as to enhance values close to zero.
 void setFloorCeilColor(java.awt.Color floorColor, java.awt.Color ceilColor)
          Sets the floor, ceiling, and line colors.
 void setGridData(GridData _griddata)
          Sets the data storage to the given value.
 void setGridLineColor(java.awt.Color color)
          Sets the contour line color.
 void setIndexes(int[] indexes)
          Sets the indexes for the data components that will be plotted.
 void setInterpolateLargeGrids(boolean interpolate)
          Sets flag to interpolates a large grid onto a smaller grid to speed the computation of contour lines.
 void setNumberOfLevels(int n)
          Sets the number of contour levels.
 void setPaletteType(int mode)
          Sets the type of palette.
 void setShowColorLevels(boolean show)
           
 void setShowGridLines(boolean showLines)
          Shows the contour lines.
 void setSymmetricZ(boolean symmetric)
          Forces the z-scale to be symmetric about zero.
 void setVisible(boolean isVisible)
          Sets the visibility of the contour plot.
 javax.swing.JFrame showLegend()
          Shows how values map to colors.
 void update()
          Updates the contour data.
 int xToIndex(double x)
          Gets closest index from the given x world coordinate.
 int yToIndex(double y)
          Gets closest index from the given y world coordinate.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

zMap

protected ZExpansion zMap

colorMap

protected ColorMapper colorMap

interpolateLargeGrids

protected boolean interpolateLargeGrids
Constructor Detail

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 Detail

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(java.lang.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(java.lang.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 javax.swing.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(java.awt.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,
                 java.awt.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(java.awt.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(java.awt.Color floorColor,
                              java.awt.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