This example shows the use of SetPieStartAngle and SetPieDirection to set the starting angle for the first segment in a pie chart, and the direction of the segments (clockwise or counter-clockwise). Note that the ability to change the starting angle and segment direction was added to PHPlot-6.0.0.
In each of the 8 plots, the pie segments are numbered from 0, with segment 0 being the first entry in the data array. The upper-left plot represents the default, and the only available option before PHPlot-6.0.0, with counter-clockwise pie segments starting at 0 degrees.
Example 5.47. Pie Chart Start Angle and Direction

<?php
# PHPlot Example: Pie chart with varying start angle and direction
# Note: This requires PHPlot-6.0.0 or higher.
require_once 'phplot.php';
$pie_slices = 6;
$base_angle = 0;
# This callback is used to label each plot with a title.
# The x_title font is set below and used here.
function draw_plot_title($img, $args)
{
list($plot, $x, $y, $title) = $args;
$text_color = imagecolorresolve($img, 0, 0, 0);
$plot->DrawText('x_title', 0, $x, $y, $text_color, $title, 'center', 'top');
}
# Produce one plot tile
function draw_plot($plot, $start_angle, $direction, $xbase, $ybase)
{
$plot->SetPieStartAngle($start_angle);
$plot->SetPieDirection($direction);
$plot->SetPlotAreaPixels($xbase, $ybase, $xbase + 200, $ybase + 200);
$title = "Start @{$start_angle}d $direction";
$plot->SetCallback('draw_all', 'draw_plot_title',
array($plot, $xbase + 100, $ybase + 200, $title));
$plot->DrawGraph();
}
# Make a data array with equal-size slices:
$data = array_fill(0, $pie_slices, array('', 1));
$plot = new PHPlot(800, 600);
$plot->SetDataValues($data);
$plot->SetDataType('text-data-single');
$plot->SetPlotType('pie');
$plot->SetShading(0);
$plot->SetImageBorderType('plain');
$plot->SetPrintImage(False);
$plot->SetTitle("Pie Chart - Vary Start Angle and Direction\n"
. "(CW = Clockwise, CCW = Counter-clockwise)");
# Configure pie labels: Show sector index, inside the pie, in a large font.
$plot->SetPieLabelType('index');
$plot->SetLabelScalePosition(0.25);
# Use the default TrueType font at 36 points.
$plot->SetFontTTF('generic', '', 36);
# This font is used by the callback to label each plot:
# Use the default TrueType font at 16 points.
$plot->SetFontTTF('x_title', '', 16); // Use the default TTF font at 16 pts
# Draw the plot tiles:
draw_plot($plot, $base_angle + 0, 'CCW', 0, 50);
draw_plot($plot, $base_angle + 90, 'CCW', 200, 50);
draw_plot($plot, $base_angle + 180, 'CCW', 400, 50);
draw_plot($plot, $base_angle + 270, 'CCW', 600, 50);
draw_plot($plot, $base_angle + 0, 'CW', 0, 300);
draw_plot($plot, $base_angle + 90, 'CW', 200, 300);
draw_plot($plot, $base_angle + 180, 'CW', 400, 300);
draw_plot($plot, $base_angle + 270, 'CW', 600, 300);
# Done:
$plot->PrintImage();
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.