PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » Images » Image_Graph » Bug #6919

Isolated points in linegraphs with breaks drawn incorrectly

Details

Submitted2006-02-24 08:20 UTC
Fromdsier at g-point dot biz
Assignednosey
StatusClosed
PackageImage_Graph
PHP Version5.0.5
Roadmaps(Not assigned)

Comments

[2006-02-24 08:20 UTC] dsier at g-point dot biz

Description:
------------
Isolated point in line graphs with breaks creates single vertex which is not used in polygon (polygons are drawn only when $numPoints > 1). If after that script starts to draw polygon based markers (triangle, circle, etc.) this single vertex is prepended to the first marker and additional line or filled area is drawn. This applies at least to GD Canvas.

Test script:
---------------
<?php
require_once 'Image/Graph.php';

$Graph =& Image_Graph::factory('graph', array(400, 300));

$Font =& $Graph->addNew('font', 'Verdana');
$Font->setSize(10);

$Graph->setFont($Font);

$Graph->add(
Image_Graph::vertical(
Image_Graph::factory('title', array('Data \'Break\' Sample', 12)),
Image_Graph::vertical(
Image_Graph::vertical(
$Plotarea1 = Image_Graph::factory('plotarea'),
$Plotarea2 = Image_Graph::factory('plotarea'),
50
),
$Legend = Image_Graph::factory('legend'),
88
),
5
)
);

$Legend->setPlotarea($Plotarea1);
$Legend->setPlotarea($Plotarea2);

$Dataset =& Image_Graph::factory('dataset');
$Dataset->addPoint('Jan', 10);
$Dataset->addPoint('Feb', 12);
$Dataset->addPoint('Mar', 3);
$Dataset->addPoint('Apr', null);
$Dataset->addPoint('May', 4);
$Dataset->addPoint('Jun', 10);
$Dataset->addPoint('Jul', null);
$Dataset->addPoint('Aug', null);
$Dataset->addPoint('Sep', 9);
$Dataset->addPoint('Oct', 10);
$Dataset->addPoint('Nov', null);
$Dataset->addPoint('Dec', 14);

$Marker1 =& Image_Graph::factory('Image_Graph_Marker_Circle');

$Plot1 =& $Plotarea1->addNew('line', array(&$Dataset));
$Plot1->setLineColor('red');
$Plot1->setMarker($Marker1);

$Marker2 =& Image_Graph::factory('Image_Graph_Marker_Box');

$Plot2 =& $Plotarea2->addNew('line', array(&$Dataset));
$Plot2->setLineColor('red');
$Plot2->setMarker($Marker2);

$Graph->done();
?>

Expected result:
----------------
Top graph shows error - additional line between first and last marker.

Actual result:
--------------
Lower graph shows good behaviour using another, not polygon based marker.

[2006-02-24 08:25 UTC] dsier at g-point dot biz

fixed bug summary