PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

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