5.37. Example - Setting a Y Tick Anchor

This example shows the use of SetYTickAnchor to tell PHPlot that we want a tick mark and label at a specific value.

Example 5.37. Setting a Y Tick Anchor

First, here is the example without a Y tick anchor. Note that there is no Y tick mark or label at the X axis Y=0.

Note

The script uses SetPlotAreaWorld to set the Y axis range to -3.5 to 13.5. This is used here to illustrate the need for setting a Y tick anchor, and the effect of setting the Y tick anchor at 0. Without SetPlotAreaWorld(), PHPlot-6.0.0 and later (but not older versions) will automatically calculate the Y range such that a tick mark will be at Y=0 even without SetYTickAnchor(0).

Setting a Y Tick Anchor - 1
<?php
# PHPlot Example: Using a Y tick anchor to force a tick at 0.
# This requires PHPlot >= 5.4.0
require_once 'phplot.php';

# The variable $set_anchor can be set to a value in another script
# which calls this script, to set the Y anchor to that value.
if (isset($set_anchor))
    $case = "with Y tick anchor at $set_anchor";
else
    $case = "without Y tick anchor";

# Function to plot:
function f($x)
{
  if ($x == 0) return 0;
  return 5 + 8 * sin(200 * M_PI / $x);
}

$data = array();
for ($x = 0; $x < 500; $x++)
  $data[] = array('', $x, f($x));

$plot = new PHPlot(800, 600);
$plot->SetImageBorderType('plain'); // For presentation in the manual
$plot->SetTitle("Example $case");
$plot->SetDataType('data-data');
$plot->SetDataValues($data);
$plot->SetPlotType('lines');
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');
# See notes in reference manual on this:
$plot->SetPlotAreaWorld(NULL, -3.5, NULL, 13.5);

if (isset($set_anchor))
    $plot->SetYTickAnchor($set_anchor);

$plot->DrawGraph();

Using SetYTickAnchor(0) tells PHPlot to shift the Y tick marks and labels to place a tick mark at Y=0.

Setting a Y Tick Anchor - 2
<?php
# PHPlot Example: Using a Y tick anchor to force a tick at 0.
# This sets a variable and calls the script directly above.
$set_anchor = 0;
require_once 'ytickanchor.php';

SourceForge.net Logo

This version of the manual was produced for the PHPlot Sourceforge project web service site, which requires the logo on each page.

To download a logo-free copy of the manual, see the PHPlot project downloads area.