SSJ  3.3.1
Stochastic Simulation in Java
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
XYChart Class Referenceabstract

This class provides tools to create charts from data in a simple way. More...

Inheritance diagram for XYChart:
[legend]
Collaboration diagram for XYChart:
[legend]

Public Member Functions

JFreeChart getJFreeChart ()
 Returns the JFreeChart object associated with this chart. More...
 
Axis getXAxis ()
 Returns the chart’s domain axis ( \(x\)-axis) object. More...
 
Axis getYAxis ()
 Returns the chart’s range axis ( \(y\)-axis) object. More...
 
abstract JFrame view (int width, int height)
 Displays chart on the screen using Swing.
 
String getTitle ()
 Gets the current chart title. More...
 
void setTitle (String title)
 Sets a title to this chart. More...
 
void setprobFlag (boolean flag)
 Must be set true when plotting probabilities, false otherwise. More...
 
void setAutoRange ()
 The \(x\) and the \(y\) ranges of the chart are set automatically.
 
void setAutoRange (boolean right, boolean top)
 The \(x\) and the \(y\) ranges of the chart are set automatically. More...
 
void setAutoRange00 (boolean xZero, boolean yZero)
 The \(x\) and the \(y\) ranges of the chart are set automatically. More...
 
void setManualRange (double[] range)
 Sets the \(x\) and \(y\) ranges of the chart using the format: range = [xmin, xmax, ymin, ymax]. More...
 
void setManualRange (double[] range, boolean right, boolean top)
 Sets the \(x\) and \(y\) ranges of the chart using the format: range = [xmin, xmax, ymin, ymax]. More...
 
void setManualRange00 (double[] range, boolean xZero, boolean yZero)
 Sets the \(x\) and \(y\) ranges of the chart using the format: range = [xmin, xmax, ymin, ymax]. More...
 
double getChartMargin ()
 Returns the chart margin, which is the fraction by which the chart is enlarged on its borders. More...
 
void setChartMargin (double margin)
 Sets the chart margin to margin. More...
 
abstract void setTicksSynchro (int s)
 Synchronizes \(x\)-axis ticks to the \(s\)-th series \(x\)-values. More...
 
void drawVerticalLine (double x, String name, double yfrac, boolean right)
 Draws a vertical line on the chart at \(x\)-coordinate x. More...
 

Protected Member Functions

void setAutoRange (boolean xZero, boolean yZero, boolean right, boolean top)
 

Protected Attributes

Axis XAxis
 
Axis YAxis
 
SSJXYSeriesCollection dataset
 
JFreeChart chart
 
boolean latexDocFlag = true
 
boolean autoRange
 
double [] manualRange
 
boolean grid = false
 
double xstepGrid
 
double ystepGrid
 
boolean probFlag = false
 
double chartMargin = 0.02
 

Latex-specific methods

void enableGrid (double xstep, double ystep)
 Puts a grid on the background. More...
 
void disableGrid ()
 Disables the background grid.
 
abstract String toLatex (double width, double height)
 Exports the chart to a LaTeX source code using PGF/TikZ. More...
 
void toLatexFile (String fileName, double width, double height)
 Transforms the chart to LaTeX form and writes it in file fileName. More...
 
void setLatexDocFlag (boolean flag)
 Flag to remove the \documentclass (and other) commands in the created LaTeX files. More...
 
void setTick0Flags ()
 
double computeXScale (double position)
 
double computeYScale (double position)
 
double computeScale (double[] bounds)
 

Detailed Description

This class provides tools to create charts from data in a simple way.

Its main feature is to produce TikZ/PGF (see WWW link http://sourceforge.net/projects/pgf/) compatible source code which can be included in LaTeX documents, but it can also produce charts in other formats. One can easily create a new chart, and customize its appearance using methods of this class, with the encapsulated umontreal.ssj.charts.SSJXYSeriesCollection object representing the data, and the two umontreal.ssj.charts.Axis objects representing the axes. All these classes depend on the JFreeChart API (see WWW link http://www.jfree.org/jfreechart/) which provides tools to build charts with Java, to draw them, and export them to files. However, only basic features are used here.

Moreover, XYChart provides methods to plot data using a MATLAB friendly syntax. None of these methods provides new features; they just propose a different syntax to create charts. Therefore some features are unavailable when using these methods only.

Member Function Documentation

◆ drawVerticalLine()

void drawVerticalLine ( double  x,
String  name,
double  yfrac,
boolean  right 
)

Draws a vertical line on the chart at \(x\)-coordinate x.

name is written near the line at \(y\) position yfrac (a fraction of the \(y\)-size of the chart, 0 is the bottom, 1 is the top); if right is true, name is written on the right of the line, else on the left.

Parameters
x\(x\)-coordinate of the line
namedescription of the line
yfrac\(y\)-position of name
right\(x\)-position of name

◆ enableGrid()

void enableGrid ( double  xstep,
double  ystep 
)

Puts a grid on the background.

It is important to note that the grid is always shifted in such a way that it contains the axes. Thus, the grid does not always have an intersection at the corner points; this occurs only if the corner points are multiples of the steps: xstep and ystep sets the step in each direction.

Parameters
xstepsets the step in the x-direction.
ystepsets the step in the y-direction.

◆ getChartMargin()

double getChartMargin ( )

Returns the chart margin, which is the fraction by which the chart is enlarged on its borders.

The default value is \(0.02\).

◆ getJFreeChart()

JFreeChart getJFreeChart ( )

Returns the JFreeChart object associated with this chart.

Returns
the associated JFreeChart object.

◆ getTitle()

String getTitle ( )

Gets the current chart title.

Returns
Chart title.

◆ getXAxis()

Axis getXAxis ( )

Returns the chart’s domain axis ( \(x\)-axis) object.

Returns
chart’s domain axis ( \(x\)-axis) object.

◆ getYAxis()

Axis getYAxis ( )

Returns the chart’s range axis ( \(y\)-axis) object.

Returns
chart’s range axis ( \(y\)-axis) object.

◆ setAutoRange()

void setAutoRange ( boolean  right,
boolean  top 
)

The \(x\) and the \(y\) ranges of the chart are set automatically.

If right is true, the vertical axis will be on the left of the points, otherwise on the right. If top is true, the horizontal axis will be under the points, otherwise above the points.

Parameters
righttrue if the x-values on the right of axis.
toptrue if the y-values on the top of axis.

◆ setAutoRange00()

void setAutoRange00 ( boolean  xZero,
boolean  yZero 
)

The \(x\) and the \(y\) ranges of the chart are set automatically.

If xZero is true, the vertical axis will pass through the point \((0, y)\). If yZero is true, the horizontal axis will pass through the point \((x, 0)\).

Parameters
xZerotrue if vertical axis passes through point 0
yZerotrue if horizontal axis passes through point 0

◆ setChartMargin()

void setChartMargin ( double  margin)

Sets the chart margin to margin.

It is the fraction by which the chart is enlarged on its borders. Restriction: \(\mathtt{margin} \ge0\).

Parameters
marginmargin percentage amount.

◆ setLatexDocFlag()

void setLatexDocFlag ( boolean  flag)

Flag to remove the \documentclass (and other) commands in the created LaTeX files.

If flag is true, then when charts are translated into LaTeX form, it will be as a self-contained file that can be directly compiled with LaTeX. However, in this form, the file cannot be included in another LaTeX file without causing compilation errors because of the multiple instructions \documentclass and \begin{document}. By setting flag to false, these instructions will be removed from the LaTeX chart files, which can then be included in a master LaTeX file. By default, the flag is true.

◆ setManualRange() [1/2]

void setManualRange ( double []  range)

Sets the \(x\) and \(y\) ranges of the chart using the format: range = [xmin, xmax, ymin, ymax].

Parameters
rangenew axis ranges.

◆ setManualRange() [2/2]

void setManualRange ( double []  range,
boolean  right,
boolean  top 
)

Sets the \(x\) and \(y\) ranges of the chart using the format: range = [xmin, xmax, ymin, ymax].

If right is true, the vertical axis will be on the left of the points, otherwise on the right. If top is true, the horizontal axis will be under the points, otherwise above the points.

Parameters
rangenew axis ranges.
righttrue if the x-values on the right.
toptrue if the y-values on the top.

◆ setManualRange00()

void setManualRange00 ( double []  range,
boolean  xZero,
boolean  yZero 
)

Sets the \(x\) and \(y\) ranges of the chart using the format: range = [xmin, xmax, ymin, ymax].

If xZero is true, the vertical axis will pass through the point \((0, y)\). If yZero is true, the horizontal axis will pass through the point \((x, 0)\).

Parameters
rangenew axis ranges.
xZerotrue if vertical axis passes through point 0
yZerotrue if horizontal axis passes through point 0

◆ setprobFlag()

void setprobFlag ( boolean  flag)

Must be set true when plotting probabilities, false otherwise.

Parameters
flagtrue for plotting probabilities

◆ setTicksSynchro()

abstract void setTicksSynchro ( int  s)
abstract

Synchronizes \(x\)-axis ticks to the \(s\)-th series \(x\)-values.

Parameters
sseries.

◆ setTitle()

void setTitle ( String  title)

Sets a title to this chart.

This title will appear on the chart displayed by method view.

Parameters
titlechart title.

◆ toLatex()

abstract String toLatex ( double  width,
double  height 
)
abstract

Exports the chart to a LaTeX source code using PGF/TikZ.

This method constructs and returns a string that can be written to a LaTeX document to render the plot. width and height represents the width and the height of the produced chart. These dimensions do not take into account the axes and labels extra space. The width and the height of the chart are measured in centimeters.

Parameters
widthChart’s width in centimeters.
heightChart’s height in centimeters.
Returns
LaTeX source code.

◆ toLatexFile()

void toLatexFile ( String  fileName,
double  width,
double  height 
)

Transforms the chart to LaTeX form and writes it in file fileName.

The chart’s width and height (in centimeters) are width and height.


The documentation for this class was generated from the following file: