CLASS Axis (Defined in: jpgraph.php : 3883)

Axis
Hide() HideFirstLastLabel() HideFirstTickLabel() HideLabels() HideLastTickLabel() HideLine() HideTicks() HideZeroLabel() SetColor() SetFont() SetLabelAlign() SetLabelAngle() SetLabelFormat() SetLabelFormatCallback() SetLabelFormatString() SetLabelMargin() SetLabelPos() SetLabelSide() SetMajTickPositions() SetPos() SetPosAbsDelta() SetTextLabelInterval() SetTextTickInterval() SetTextTicks() SetTickDirection() SetTickLabelMargin() SetTickLabels() SetTickPositions() SetTickSide() SetTitle() SetTitleMargin() SetTitleSide() SetWeight()

Class usage and Overview
The Axis class represents either the X or Y axis in a graph. This class is noramlly accessed through the instance variables graph->xaxis, $graph->yaxis, or $graph->y2axis Public properties:

Name | Type | Description
--- | --- | ---
title | Text | Axis title text
scale | LinearScale/LogScale | Scale used for axis

See also related classes:
LinearScale, LogScale and Text

Class Methods

function Hide($aHide)
Hide the axis

Argument | Default | Description
--- | --- | ---
$aHide | true | Flag.

Description
This method is used to hide the axis.

Example

$graph->xaxis->Hide(); // Hide xaxis
$graph->yaxis->Hide(); // Hide y-axis

function HideFirstLastLabel()
Hide the first and last label on the scale.

Description
Hide the first and last label on the scale. Usefull whe you are using Axis Type of AXSTYLE_BOXIN or AXSTYLE_BOXOUT to avoid the labels to owerwrite a box around the plot.
See also
Axis::HideFirstTickLabel and Axis::HideLastTickLabel

Example

//...
$graph->SetAxisStyle(AXSTYLE_BOXOUT);
$graph->SetBox();
$graph->xaxis->HideFirstLastLabel();
$graph->yaxis->HideFirstLastLabel();
//...

function HideFirstTickLabel($aShow)
Hide the first label

Argument | Default | Description
--- | --- | ---
$aShow | false | Flag.

Description
Calling this method will hide the first label on the axis. This is usefull when the y axis have negative values and a value on the x-axis would be partially obscured by the values on the y-axis. This gets automatically called in this case.

This is probably of less use for the end user of the library.

Example

$graph->xaxis->HideFirstTicklabel()

function HideLabels($aHide)
Hide all labels on the axis

Argument | Default | Description
--- | --- | ---
$aHide | true | true=Hide all labels

Description
Hide all labels on the axis but keep tick marks and axis line.
See also
Axis::Hide, Axis::HideLine and Axis::HideTicks

Example

$graph->xaxis->HideLabels()

function HideLastTickLabel($aShow)
Hide the last tick label on the axis.

Argument | Default | Description
--- | --- | ---
$aShow | false | Flag

Description
The mirror of HideFirstTickLabel()
See also
Axis::HideFirstTickLabel and Axis::HideFirstLastLabel

Example

$graph->xaxis->HideLastTickLabel();

function HideLine($aHide)
// Hide the actual axis-line, but still print the labels

Argument | Default | Description
--- | --- | ---
$aHide | true | True=Hide axis line

Description
Hide the line of the axis. This only hides the axis-line but will keep the tick marks and labels. If you want to hide the tick marks you should call HideTicks(). To hide the axis completely, line, ticks and labels use Hide().
See also
Axis::HideTicks and Axis::Hide

Example

// Hide line and tick marks
$graph->yaxis->HideLine();
$graph->yaxis->HideTicks();

function HideTicks($aHideMinor,$aHideMajor)
Hide minor or major tick marks.

Argument | Default | Description
--- | --- | ---
$aHideMinor | true | True = Hide minor tick marks
$aHideMajor | true | True = Hide major tick marks

Description
Hide major or minor tick makrs on the axis.

Example

// Only display major tick marks
$graph->yaxis->HideTicks(true,false);

function HideZeroLabel($aFlag)
Hide zero label

Argument | Default | Description
--- | --- | ---
$aFlag | true | Flag.

Description
Hide the zero label. Usefull if the axis cross at zero and the label would owerwrite the other axis scale.
See also
Axis::HideFirstTickLabel

Example

$graph->yaxis->HideZeroLabel();

function SetColor($aColor,$aLabelColor)
Specify color of Axis and it's labels

Argument | Default | Description
--- | --- | ---
$aColor |  | Color for axis
$aLabelColor | false | Color for labels on axis

Description
Specifies the color of the axis line as well as the labels on the axis. If the label color is not specified it will be the same as the axis color.

Example

$graph->xaxis->SetColor('blue');
$graph->yaxis->SetColor('blue','black');

function SetFont($aFamily,$aStyle,$aSize)
Set the font for labels on the axis

Argument | Default | Description
--- | --- | ---
$aFamily |  | Font family
$aStyle | FS_NORMAL | Font style
$aSize | 10 | Font size

Description
Specify font for labels on axis. Please note that if you need labels to be rotated an angle other than 0 or 90 you must use TTF fonts and not the builtin fonts (i.e. FF_FONT1, FF_FONT2, FF_FONT3)
See also
Axis::SetLabelPos and Axis::SetLabelAngle

Example

$graph->xaxis->SetFont(FF_ARIAL);

function SetLabelAlign($aHAlign,$aVAlign,$aParagraphAlign)
Specify horizontal and vertical alignment for labels

Argument | Default | Description
--- | --- | ---
$aHAlign |  | Horizontal alignment
$aVAlign | "top" | Vertical alignment
$aParagraphAlign | 'left' | paragraph align for multi-line texts

Description
Specifies the horizontal and vertical alignment for the labels on the axis. The alignment specifies how the labels is adjusted relative to the tickmark.

Note that this is handled automatically but on some occasion there is a genuine need to override the automtic values. For example if the graph is rotated it might be necessary to adjust the alignment to get a visual acceptable label alignment.

Possible horizontal alignment are: 'left', 'center', 'right'
Possible vertical alignment are: 'top', 'center', 'bottom'

See horizbarex1.php, horizbarex2.php for real life examples.

Example

$graph->xaxis->SetLabelAlign('right','center');

function SetLabelAngle($aAngle)
Specify the angle for the tick labels

Argument | Default | Description
--- | --- | ---
$aAngle |  | Angle in degrees

Description
Specify the rotation angle for the labels on the axis.

Note:
If you want to use any angles other than 0 and 90 degrees you must make sure that the labels are using TTF fonts. Internal fonts only support vertical and horizontal angles.

See also
Axis::SetFont

Example

$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,11);
$graph->xaxis->SetLabelAngle(45); // 45 degrees angle

function SetLabelFormat($aFormStr)
Specify printf() format string for labels

Argument | Default | Description
--- | --- | ---
$aFormStr |  | Format string

Description
Specify a printf() format string for the axis labels. if you need more advanced control of the formatting you can install a label format callbacl routine with Axis::SetLabelFormatCallback()
See also
Axis::SetLabelFormatCallback

Example

$graph->xaxis->SetLabelFormat('%0.1f%%');

function SetLabelFormatCallback($aFuncName)
Specify callback function for labels on axis

Argument | Default | Description
--- | --- | ---
$aFuncName |  | Callback function

Description
This can be used when more advance formatting of the axis labels are required. For example this could be used to format numbers with space or commas betwen the '1000.

The callback routine is called with one argument, the current number to be displayed and should return the number to be displayed.

For simple formatting use SetlabelFormat() to specify a printf() style formatting string.

The callback function specified should can either be a global function or a class method, for example

    $SomeClass = new SomeClass(...);
    ...
    $g->SetXLabelFormatCallback(array($SomeClass,'xLabelCallback'));

There is, however, one caution. Any $this data used within LabelFormatCallbackInDerivedClass MUST BE SET BEFORE SetLabelFormatCallback is invoked! it appears that $this is bound/copied when SetLabelFormatCallback is invoked. Only $this data defined at that time is available within the callback function! Likewise, modifications to $this data AFTER SetLabelFormatCallback have no effect since the $this object used by the callback function has already been bound/copied.

The same issues obtain when the callback function is in a seperate class!

For a full example see barscalecallbackex1.php

See also
Axis::SetLabelFormat

Example

function yLabelFormat($aLabel) {
// Format '1000 english style
return number_format($aLabel)
// Format '1000 french style
// return number_format($aLabel, 2, ',', ' ');
}
$graph->yaxis->SetLabelFormatCallback('yLabelFormat');

function SetLabelFormatString($aFormStr,$aDate)
Specify a printf()-style format string for labels.

Argument | Default | Description
--- | --- | ---
$aFormStr |  | Format string
$aDate | false | No description available

Description
Synonym for SetLabelFormat(). Will be deprecated in a future release. Use SetLabelFormat() instead.
See also
Axis::SetLabelFormat

Example

$graph->xaxis->SetLabelFormatString('%0.1f%%');

function SetLabelMargin($aMargin)
Specify margin between labels and tick marks

Argument | Default | Description
--- | --- | ---
$aMargin |  | Margin in pixels

Description
Specify margin between labels and tick marks.

Example

$graph->xaxis->SetLabelMargin(15);

function SetLabelPos($aSidePos)
Specify what side of the axis labels should be on.

Argument | Default | Description
--- | --- | ---
$aSidePos |  | Position

Description
Specify which side the labels should go on. For horizontal axis valid arguments are SIDE_UP, SIDE_DOWN and for vertical axis it is SIDE_LEFT, SIDE_RIGHT.

See topaxisex1.php for an example when this is usefull.

Note: Synonym to SetLabelSide()

See also
Axis::SetTickSide and Axis::SetLabelSide

Example

$graph->xaxis->SetLabelPos(SIDE_TOP);

function SetLabelSide($aSidePos)
Specify what side of the axis labels should be on.

Argument | Default | Description
--- | --- | ---
$aSidePos |  | Which side of the axis the labels should be on

Description
Specify which side the labels should go on. For horizontal axis valid arguments are SIDE_UP, SIDE_DOWN and for vertical axis it is SIDE_LEFT, SIDE_RIGHT.

See topaxisex1.php for an example when this is usefull.

Note: Synonym to SetLabelPos()

See also
Axis::SetLabelPos

Example

$graph->xaxis->SetLabelSide(SIDE_UP);

function SetMajTickPositions($aMajPos,$aLabels)
// Manually specify major tick positions and optional labels

Argument | Default | Description
--- | --- | ---
$aMajPos |  | No description available
$aLabels | NULL | No description available

Description
No description available.

function SetPos($aPosOnOtherScale)
Position for axis line on the "other" scale

Argument | Default | Description
--- | --- | ---
$aPosOnOtherScale |  | Position in world-coordinate

Description
Specifies the position of the axis on the other axis. This can be specified as either a numeric value (which gives the absolute position on the other scale). OIt can also be specified as a string value as either 'min' or 'max' which sould position the axis either at the beginning or the end of the opposite axis scale.

See topaxisex1.php for a real life example.

Example

$graph->xaxis->SetPos('max'); // Locate x-axis at the top

function SetPosAbsDelta($aDelta)
Position the multiple Y-axis

Argument | Default | Description
--- | --- | ---
$aDelta |  | Delta in pixels

Description
Set the position of the Y-axis to be X-pixels delta to the right of the max X-position (used to position the multiple Y-axis)

function SetTextLabelInterval($aStep,$aStart)
Specify interval for for test labels

Argument | Default | Description
--- | --- | ---
$aStep |  | Intervall
$aStart | 0 | No description available

Description
Specify that every $step tick mark should have a label
See also
Axis::SetTickLabels

Example

// Only draw labels on every 2nd tick mark
$graph->xaxis->SetTextLabelInterval(2);

function SetTextTickInterval($aStep,$aStart)
Specify what ticks should be displayed

Argument | Default | Description
--- | --- | ---
$aStep |  | Intervall between ticks
$aStart | 0 | Start tick

Description
Specify that every $step of the ticks should be displayed starting at $start.
See also
Axis::SetTextLabelInterval and Axis::SetTextTicks

Example

$graph->SetTextTickInterval(1,2);

function SetTextTicks($step,$start)
Specify intervall for ticks on a text scale

Argument | Default | Description
--- | --- | ---
$step |  | Intervall
$start | 0 | Start

Description
DEPRECATED FUNCTION: USE SetTextTickInterval() INSTEAD
See also
Axis::SetTextTickInterval

Example

NA

function SetTickDirection($aDir)
Specify what side of the axis ticks should be at

Argument | Default | Description
--- | --- | ---
$aDir |  | Direction

Description
Specify which side of the axis the tick marks should be on. Valid positions for a horizontal axis are SIDE_TOP, SIDE_BOTTOM and for verticla axis SIDE_LEFT and SIDE_RIGHT.

This is a shortform for accessing the tick method directly via the scale in the axis.

See topaxisex1.php for real life example.

See also
Axis::SetLabelSide and Ticks::SetDirection

Example

$graph->xaxis->SetTickDirection(SIDE_TOP);

function SetTickLabelMargin($aMargin)
How far from the axis should the labels be drawn

Argument | Default | Description
--- | --- | ---
$aMargin |  | Margin in pixels

Description
Specify the margin (in pixels) between the axis and the label

Example

$graph->xaxis->SetTicklabelmargin(50);

function SetTickLabels($aLabelArray,$aLabelColorArray)
Specify text labels for the ticks. One label for each data point

Argument | Default | Description
--- | --- | ---
$aLabelArray |  | Array with labels
$aLabelColorArray | null | Individual colors for each label

Description
Specify the labels for a text axis. This is used to manually set labels for the x-axis when a text scale has been specified.

If fewer labels than data points are specified then the missing labels will be set to the data points ordinal numbers.

The color argment is an array that can be used to specify individual colors for each of the labels. If fewer colors than labels are specified then the colors will wrap around.

See also
Axis::SetTextLabelInterval and Axis::SetTickLabelMargin

Example

// Set the x-axel to the month of the years using the
// gloablly available $gDateLocale
$a = $gDateLocale->GetShortMonth();
$graph->xaxis->SetTickLabels($a);
$graph->xaxis->SetFont(FF_FONT2);

function SetTickPositions($aMajPos,$aMinPos,$aLabels)
// Manually specify the major and (optional) minor tick position and labels

Argument | Default | Description
--- | --- | ---
$aMajPos |  | No description available
$aMinPos | NULL | No description available
$aLabels | NULL | No description available

Description
No description available.

function SetTickSide($aDir)
Specify what side of the axis the ticks should be at

Argument | Default | Description
--- | --- | ---
$aDir |  | Specify side

Description
Specify which side of the axis the tick marks should be on. Valid positions for a horizontal axis are SIDE_TOP, SIDE_BOTTOM and for verticla axis SIDE_LEFT and SIDE_RIGHT.

This is a shortform for accessing the tick method directly via the scale in the axis.

See topaxisex1.php for real life example.

See also
Axis::SetTickDirection

Example

$graph->xaxis->SetTickSide(SIDE_TOP);

function SetTitle($aTitle,$aAdjustAlign)
Title for axis

Argument | Default | Description
--- | --- | ---
$aTitle |  | Title string
$aAdjustAlign | "high" | Alignment of title along the axis

Description
Set the title for the axis. You can specify the alignment as being either "high", "middle" and "low". To adjust the titles font and color you have to access the label instance variable. For example, $graph->xaxis->title->SetFont(FF_FONT2,FS_BOLD)

Example

$graph->xaxis->SetTitle('Values for 2002','middle');

function SetTitleMargin($aMargin)
Specify distance from the axis

Argument | Default | Description
--- | --- | ---
$aMargin |  | Margin in pixels

Description
Specify the distance between the axis and the title.
See also
Axis::SetTitle

Example

$graph->SetTitlemargin(50);

function SetTitleSide($aSideOfAxis)
Specify what side of the axis the title should be at

Argument | Default | Description
--- | --- | ---
$aSideOfAxis |  | Side

Description
For horizontal axis the side can be either SIDE_TOP or SIDE_BOTTOM and for vertical axis the position can be either SIDE_LEF or SIDE_RIGHT.

By default x-axis have the title below the axis and y-axis have it on the left and y2 on the right.

See topaxisex1.php for real life example

See also
Axis::SetLabelSide and Axis::SetTickSide

Example

$graph->xaxis->SetTitleSide(SIDE_TOP);

function SetWeight($aWeight)
Weight of axis

Argument | Default | Description
--- | --- | ---
$aWeight |  | Weight in pixels

Description
Specify the thickness of the axis in pixels

Example

$graph->SetWeight(3);