Graphics
Class JGraph

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjavax.swing.JFrame
                      extended bycom.jrefinery.chart.JFreeChartFrame
                          extended byGraphics.JGraph
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class JGraph
extends com.jrefinery.chart.JFreeChartFrame

JFrame able to display and save as a PNG file XYPlots of a number of function series (graps of functions y=f(x)) defined on the same interval [x_min,x_max] and evaluated at evenly spaced points in this interval incuding the endpoints.

The number of points at which each series is sampled can vary from series to series. The series are added to the JGraph by passing the array containing the sample values addSeries(double[], java.lang.String).

Presently only 9 series can be added to the plot. The color array contains only 9 colors. This will be changed in the near future.

Based on JFreeChart by David Gilbert.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JGraph(double x_min, double x_max)
          Constructor initializes chartFrame as a javax.swing.JFrame containing the plot of nSeries series based on the same linear domain x[i]=x_min+(x_max-x_min)*i/n, i=0,1,...,n=nPoints-1.
 
Method Summary
 void addSeries(double[] series, java.lang.String seriesName)
          Add a series
static void main(java.lang.String[] args)
          Test program displaying the graph of three functions f(x)=x^2, g(x)=5-x^2, h(x)=2+x^2/2 and saving the graph as the file testGraph.jpeg.
 void saveAsASCII(java.lang.String filename)
          Saves the "graph" as an ASCII data file by first printing the points in the domain (x-values) and then printing the series (y-values) all as columns separated by commas.
 void saveAsEPS(java.lang.String filename)
          FILE EXPORT
 void saveAsJPEG(java.lang.String filename)
          Saves the graph in as a JPEG file.
 void saveAsPNG()
          Saves the graph in as a PNG file (dialogue)
 void setTitle(java.lang.String title)
           
 void setXAxisLabel(java.lang.String xAxisLabel)
           
 void setYAxisLabel(java.lang.String yAxisLabel)
           
 void setYAxisMin(double y_min)
          Set axes labels, title, y-axis minimum
 
Methods inherited from class com.jrefinery.chart.JFreeChartFrame
getChartPanel
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setIconImage, setMaximizedBounds, setMenuBar, setResizable, setState, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Constructor Detail

JGraph

public JGraph(double x_min,
              double x_max)

Constructor initializes chartFrame as a javax.swing.JFrame containing the plot of nSeries series based on the same linear domain x[i]=x_min+(x_max-x_min)*i/n, i=0,1,...,n=nPoints-1.

Parameters:
x_min - minimum x-value
x_max - maximum x-value

Note: the arrays seriesArray and seriesNames can contain more than nSeries series respectively strings. Only the first nSeries items will be displayed.

Method Detail

setYAxisMin

public void setYAxisMin(double y_min)
Set axes labels, title, y-axis minimum


setXAxisLabel

public void setXAxisLabel(java.lang.String xAxisLabel)

setYAxisLabel

public void setYAxisLabel(java.lang.String yAxisLabel)

setTitle

public void setTitle(java.lang.String title)

addSeries

public void addSeries(double[] series,
                      java.lang.String seriesName)

Add a series

Parameters:
series - array containing the values of the series at the gridpoints evenly spaced in [x_min,x_max].
seriesName - name of the series (goes in legend).

saveAsEPS

public void saveAsEPS(java.lang.String filename)
               throws java.io.FileNotFoundException,
                      java.io.IOException
FILE EXPORT

Throws:
java.io.FileNotFoundException
java.io.IOException

saveAsJPEG

public void saveAsJPEG(java.lang.String filename)

Saves the graph in as a JPEG file.


saveAsPNG

public void saveAsPNG()

Saves the graph in as a PNG file (dialogue)


saveAsASCII

public void saveAsASCII(java.lang.String filename)

Saves the "graph" as an ASCII data file by first printing the points in the domain (x-values) and then printing the series (y-values) all as columns separated by commas.

This format is useful for import into more sophisticated tools such as Scigraphica, http://www.scigraphica.sourceforge.net/. These tools then offer much functionality for editing the graph by hand.

The assumption is that all the series are based on the same domain with the same discretization of this domain.


main

public static void main(java.lang.String[] args)
                 throws java.lang.InterruptedException,
                        java.io.FileNotFoundException,
                        java.io.IOException

Test program displaying the graph of three functions f(x)=x^2, g(x)=5-x^2, h(x)=2+x^2/2 and saving the graph as the file testGraph.jpeg.

Throws:
java.lang.InterruptedException
java.io.FileNotFoundException
java.io.IOException