Example #1
0
<?php

require_once '../../vendor/autoload.php';
use Amenadiel\JpGraph\Graph;
use Amenadiel\JpGraph\Plot;
// Data can be specified using both ordinal index of the axis
// as well as the direction label.
$data = array(2 => array(1, 15, 7.5, 2), 5 => array(1, 1, 1.5, 2), 7 => array(1, 2, 10, 3, 2), 8 => array(2, 3, 1, 3, 1, 2));
// First create a new windrose graph with a title
$graph = new Graph\WindroseGraph(590, 580);
$graph->title->Set('Japanese locale');
#$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
$graph->title->SetColor('navy');
// Create the free windrose plot.
$wp = new Plot\WindrosePlot($data);
$wp->SetType(WINDROSE_TYPE8);
// Add some "arbitrary" text to the center
$wp->scale->SetZeroLabel("SOx\n8%%");
// Localize the compass direction labels into Japanese
// Note: The labels for data must now also match the exact
// string for the compass directions.
//
// E   東
// NE  北東
// N   北
// NW  北西
// W   西
// SW  南西
// S   南
// SE  南東
$jp_CompassLbl = array('東', '', '北東', '', '北', '', '北西', '', '西', '', '南西', '', '南', '', '南東', '');
<?php

require_once '../../vendor/autoload.php';
use Amenadiel\JpGraph\Graph;
use Amenadiel\JpGraph\Plot;
// Data can be specified using both ordinal idex of axis as well
// as the direction label
$data = array(1 => array(10, 10, 13, 7), 2 => array(2, 8, 10), 4 => array(1, 12, 22));
$data2 = array(4 => array(12, 8, 2, 3), 2 => array(5, 4, 4, 5, 2));
// Create a new small windrose graph
$graph = new Graph\WindroseGraph(660, 400);
$graph->SetShadow();
$graph->title->Set('Two windrose plots in one graph');
$graph->title->SetFont(FF_ARIAL, FS_BOLD, 14);
$graph->subtitle->Set('(Using Box() for each plot)');
$wp = new Plot\WindrosePlot($data);
$wp->SetType(WINDROSE_TYPE8);
$wp->SetSize(0.42);
$wp->SetPos(0.25, 0.55);
$wp->SetBox();
$wp2 = new Plot\WindrosePlot($data2);
$wp2->SetType(WINDROSE_TYPE16);
$wp2->SetSize(0.42);
$wp2->SetPos(0.74, 0.55);
$wp2->SetBox();
$wp2->SetRangeColors(array('green', 'yellow', 'red', 'brown'));
$graph->Add($wp);
$graph->Add($wp2);
$graph->Stroke();
Example #3
0
<?php

require_once '../../vendor/autoload.php';
use Amenadiel\JpGraph\Graph;
use Amenadiel\JpGraph\Plot;
$data = array(2 => array(1, 15, 7.5, 2), 5 => array(1, 1, 1.5, 2), 7 => array(1, 2, 10, 3, 2), 9 => array(2, 3, 1, 3, 1, 2));
// First create a new windrose graph with a title
$graph = new Graph\WindroseGraph(400, 450);
$graph->title->Set('Windrose example 7');
$graph->title->SetFont(FF_VERDANA, FS_BOLD, 14);
$graph->title->SetColor('navy');
// Create the free windrose plot.
$wp = new Plot\WindrosePlot($data);
$wp->SetType(WINDROSE_TYPE16);
// Add some "arbitrary" text to the center
$wp->scale->SetZeroLabel("SOx\n8%%");
// Localize the compass direction labels into Swedish
// Note: The labels for data must now also match the exact
// string for the compass directions.
$se_CompassLbl = array('O', 'ONO', 'NO', 'NNO', 'N', 'NNV', 'NV', 'VNV', 'V', 'VSV', 'SV', 'SSV', 'S', 'SSO', 'SO', 'OSO');
$wp->SetCompassLabels($se_CompassLbl);
// Localize the "Calm" text into Swedish and make the circle
// slightly bigger than default
$se_calmtext = 'Lugnt';
$wp->legend->SetCircleText($se_calmtext);
$wp->legend->SetCircleRadius(20);
// Adjust the displayed ranges
$ranges = array(1, 3, 5, 8, 12, 19, 29);
$wp->SetRanges($ranges);
//$wp->SetAntiAlias(true);
// Set the scale to always have max value of 30 with a step
Example #4
0
$data = array('10' => array(1, 1, 2.5, 4), '32.0' => array(3, 4, 1, 4), '120.5' => array(2, 3, 4, 4, 3, 2, 1), '223.2' => array(2, 4, 1, 2, 2), '285.7' => array(2, 2, 1, 2, 4, 2, 1, 1));
// Specify text for direction labels
$labels = array('120.5' => "Plant\n#1275", '285.7' => "Reference\n#13 Ver:2");
// Range colors to be used
$rangeColors = array('khaki', 'yellow', 'orange', 'orange:0.7', 'brown', 'darkred', 'black');
// First create a new windrose graph with a title
$graph = new Graph\WindroseGraph(400, 450);
// Setup titles
$graph->title->Set('Windrose example 6');
$graph->title->SetFont(FF_VERDANA, FS_BOLD, 12);
$graph->title->SetColor('navy');
$graph->subtitle->Set('(Free type plot)');
$graph->subtitle->SetFont(FF_VERDANA, FS_ITALIC, 10);
$graph->subtitle->SetColor('navy');
// Create the windrose plot.
$wp = new Plot\WindrosePlot($data);
// Setup a free plot
$wp->SetType(WINDROSE_TYPEFREE);
// Setup labels
$wp->SetLabels($labels);
$wp->SetLabelPosition(LBLPOSITION_CENTER);
$wp->SetLabelMargin(30);
// Setup the colors for the ranges
$wp->SetRangeColors($rangeColors);
// Adjust the font and font color for scale labels
$wp->scale->SetFont(FF_ARIAL, FS_NORMAL, 9);
// Set the diameter and position for plot
$wp->SetSize(230);
$wp->SetZCircleSize(30);
// Adjust the font and font color for compass directions
$wp->SetFont(FF_ARIAL, FS_NORMAL, 10);
Example #5
0
require_once '../../vendor/autoload.php';
use Amenadiel\JpGraph\Graph;
use Amenadiel\JpGraph\Plot;
// Data can be specified using both ordinal idex of axis as well
// as the direction label
$data2 = array('vsv' => array(12, 8, 2, 3), 6 => array(5, 4, 4, 5, 4));
$se_CompassLbl = array('O', 'ONO', 'NO', 'NNO', 'N', 'NNV', 'NV', 'VNV', 'V', 'VSV', 'SV', 'SSV', 'S', 'SSO', 'SO', 'OSO');
// Create a new small windrose graph
$graph = new Graph\WindroseGraph(400, 400);
$graph->SetMargin(25, 25, 25, 25);
$graph->SetFrame();
$graph->title->Set('Example with background flag');
#$graph->title->SetFont(FF_VERA,FS_BOLD,14);
//$graph->SetBackgroundImage('bkgimg.jpg',BGIMG_FILLFRAME);
//$graph->SetBackgroundImageMix(90);
$graph->SetBackgroundCFlag(28, BGIMG_FILLFRAME, 15);
$wp2 = new Plot\WindrosePlot($data2);
$wp2->SetType(WINDROSE_TYPE16);
$wp2->SetSize(0.55);
$wp2->SetPos(0.5, 0.5);
$wp2->SetAntiAlias(false);
$wp2->SetFont(FF_ARIAL, FS_BOLD, 10);
$wp2->SetFontColor('black');
$wp2->SetCompassLabels($se_CompassLbl);
$wp2->legend->SetMargin(20, 5);
$wp2->scale->SetZFont(FF_ARIAL, FS_NORMAL, 8);
$wp2->scale->SetFont(FF_ARIAL, FS_NORMAL, 9);
$wp2->scale->SetLabelFillColor('white', 'white');
$wp2->SetRangeColors(array('green', 'yellow', 'red', 'brown'));
$graph->Add($wp2);
$graph->Stroke();
Example #6
0
require_once '../../vendor/autoload.php';
use Amenadiel\JpGraph\Graph;
use Amenadiel\JpGraph\Plot;
// Data can be specified using both ordinal index of the axis
// as well as the direction label.
$data = array('45.9' => array(3, 2, 1, 2, 2), 355 => array(1, 1, 1.5, 2), 180 => array(1, 1, 1.5, 2), 150 => array(1, 2, 1, 3), 'S' => array(2, 3, 5, 1));
// Add some labels for  afew of the directions
$labels = array(355 => "At\nHome base", 180 => "Probe\n123", 150 => "Power\nplant");
// Define the color,weight and style of some individual radial grid lines.
$axiscolors = array(355 => "red");
$axisweights = array(355 => 8);
$axisstyles = array(355 => 'solid', 150 => 'solid');
// First create a new windrose graph with a title
$graph = new Graph\WindroseGraph(400, 500);
$graph->title->Set('Windrose example 8');
$graph->title->SetFont(FF_VERDANA, FS_BOLD, 14);
$graph->title->SetColor('navy');
// Create the free windrose plot.
$wp = new Plot\WindrosePlot($data);
$wp->SetType(WINDROSE_TYPEFREE);
// Specify colors weights and style for the radial gridlines
$wp->SetRadialColors($axiscolors);
$wp->SetRadialWeights($axisweights);
$wp->SetRadialStyles($axisstyles);
// Add a few labels
$wp->SetLabels($labels);
// Add some "arbitrary" text to the center
$wp->scale->SetZeroLabel("SOx\n8%%");
// Finally add it to the graph and send back to client
$graph->Add($wp);
$graph->Stroke();
Example #7
0
<?php

require_once '../../vendor/autoload.php';
use Amenadiel\JpGraph\Graph;
use Amenadiel\JpGraph\Plot;
$data = array(0 => array(1, 1, 2.5, 4), 1 => array(3, 4, 1, 4), 'wsw' => array(1, 5, 5, 3), 'N' => array(2, 7, 5, 4, 2), 15 => array(2, 7, 12));
// First create a new windrose graph with a title
$graph = new Graph\WindroseGraph(400, 400);
// Setup title
$graph->title->Set('Windrose basic example');
$graph->title->SetFont(FF_VERDANA, FS_BOLD, 12);
$graph->title->SetColor('navy');
// Create the windrose plot.
$wp = new Plot\WindrosePlot($data);
$wp->SetRadialGridStyle('solid');
$graph->Add($wp);
// Send the graph to the browser
$graph->Stroke();
Example #8
0
<?php

require_once '../../vendor/autoload.php';
use Amenadiel\JpGraph\Graph;
use Amenadiel\JpGraph\Plot;
// Data can be specified using both ordinal index of the axis
// as well as the direction label
$data = array(0 => array(1, 1, 2.5, 4), 1 => array(3, 4, 1, 4), 3 => array(2, 7, 4, 4, 3), 5 => array(2, 7, 1, 2));
// First create a new windrose graph with a title
$graph = new Graph\WindroseGraph(400, 400);
// Setup title
$graph->title->Set('Windrose example 2');
$graph->title->SetFont(FF_VERDANA, FS_BOLD, 12);
$graph->title->SetColor('navy');
// Create the windrose plot.
$wp = new Plot\WindrosePlot($data);
// Make it have 8 compass direction
$wp->SetType(WINDROSE_TYPE8);
// Setup the weight of the laegs for the different ranges
$weights = array_fill(0, 8, 10);
$wp->SetRangeWeights($weights);
// Adjust the font and font color for scale labels
$wp->scale->SetFont(FF_TIMES, FS_NORMAL, 11);
$wp->scale->SetFontColor('navy');
// Set the diametr for the plot to 160 pixels
$wp->SetSize(200);
// Set the size of the innermost center circle to 30% of the plot size
$wp->SetZCircleSize(0.2);
// Adjust the font and font color for compass directions
$wp->SetFont(FF_ARIAL, FS_NORMAL, 12);
$wp->SetFontColor('darkgreen');
Example #9
0
$ypos2 = 0.9;
// First create a new windrose graph with a title
$graph = new Graph\WindroseGraph(650, 350);
$graph->title->Set('Interpretation of ordinal keys');
$graph->title->SetFont(FF_VERDANA, FS_BOLD, 14);
$graph->title->SetColor('navy');
// Create the first plot
$wp1 = new Plot\WindrosePlot($data);
$wp1->SetType(WINDROSE_TYPE16);
// This is the default encoding
$wp1->SetDataKeyEncoding(KEYENCODING_ANTICLOCKWISE);
$wp1->legend->Hide();
$wp1->SetPos($xpos1, $ypos1);
$wp1->SetSize(0.5);
// Create the second plot
$wp2 = new Plot\WindrosePlot($data);
$wp2->SetType(WINDROSE_TYPE16);
$wp2->SetDataKeyEncoding(KEYENCODING_CLOCKWISE);
$wp2->legend->Hide();
$wp2->SetPos($xpos2, $ypos1);
$wp2->SetSize(0.5);
$txt1 = new Text('KEYENCODING_ANTICLOCKWISE');
$txt1->SetFont(FF_COURIER, FS_BOLD, 12);
$txt1->SetPos($xpos1, $ypos2);
$txt1->SetAlign('center', 'top');
$txt2 = new Text('KEYENCODING_CLOCKWISE');
$txt2->SetFont(FF_COURIER, FS_BOLD, 12);
$txt2->SetPos($xpos2, $ypos2);
$txt2->SetAlign('center', 'top');
// Finally add it to the graph and send back to the client
$graph->Add($wp1);
Example #10
0
<?php

require_once '../../vendor/autoload.php';
use Amenadiel\JpGraph\Graph;
use Amenadiel\JpGraph\Plot;
// Data can be specified using both ordinal index of the axis
// as well as the direction label
$data = array(0 => array(1, 1, 2.5, 4), 1 => array(3, 4, 1, 4), 3 => array(2, 7, 4, 4, 3), 5 => array(2, 7, 1, 2));
// First create a new windrose graph with a title
$graph = new Graph\WindroseGraph(400, 400);
// Setup title
$graph->title->Set('Windrose example 4');
$graph->title->SetFont(FF_VERDANA, FS_BOLD, 12);
$graph->title->SetColor('navy');
// Create the windrose plot.
$wp = new Plot\WindrosePlot($data);
// Adjust the font and font color for scale labels
$wp->scale->SetFont(FF_TIMES, FS_NORMAL, 11);
$wp->scale->SetFontColor('navy');
// Set the diameter and position for plot
$wp->SetSize(190);
// Set the size of the innermost center circle to 40% of the plot size
// Note that we can have the automatic "Zero" sum appear in our custom text
$wp->SetZCircleSize(0.38);
$wp->scale->SetZeroLabel("Station 12\n(Calm %d%%)");
// Adjust color and font for center circle text
$wp->scale->SetZFont(FF_ARIAL, FS_NORMAL, 9);
$wp->scale->SetZFontColor('darkgreen');
// Adjust the font and font color for compass directions
$wp->SetFont(FF_ARIAL, FS_NORMAL, 10);
$wp->SetFontColor('darkgreen');
Example #11
0
// Setup all the defined text boxes
$n = count($txt);
for ($i = 0; $i < $n; ++$i) {
    $txtbox[$i] = new Text($txt[$i]);
    $txtbox[$i]->SetPos($txtlayout[$i][0], $txtlayout[$i][1], 'right');
    $txtbox[$i]->SetWordwrap($txtlayout[$i][2]);
    $txtbox[$i]->SetParagraphAlign($txtlayout[$i][3]);
    $txtbox[$i]->SetColor($txtlayout[$i][4]);
    $txtbox[$i]->SetBox($txtlayout[$i][5]);
    if (count($txtlayout[$i]) > 6) {
        $txtbox[$i]->SetFont($txtlayout[$i][6], $txtlayout[$i][7], $txtlayout[$i][8]);
    }
}
$graph->Add($txtbox);
// Create the windrose plot.
$wp = new Plot\WindrosePlot($data);
// Set background color for plot area
$wp->SetColor('lightyellow');
// Add a box around the plot
$wp->SetBox();
// Setup the colors for the ranges
$wp->SetRangeColors($rangeColors);
// Adjust the font and font color for scale labels
$wp->scale->SetFont(FF_ARIAL, FS_NORMAL, 9);
$wp->scale->SetFontColor('navy');
// Set the diameter and position for plot
$wp->SetSize(190);
$wp->SetPos(0.35, 0.53);
$wp->SetZCircleSize(0.2);
// Adjust the font and font color for compass directions
$wp->SetFont(FF_ARIAL, FS_NORMAL, 10);