{ public function GET_rgb_array() { return $this->rgb_array; } } $p = new PHPlot_pv(800, 700); # Use internal color map rgb_array to get a list of colors: $colors = array_keys($p->GET_rgb_array()); sort($colors); $nc = count($colors); # Make a data array with 1 point, $nc data sets: $dp = array(''); for ($i = 0; $i < $nc; $i++) { $dp[] = $nc - $i; } $data = array($dp); $p->SetPlotType('bars'); $p->SetDataType('text-data'); $p->SetDataValues($data); # Use all colors: $p->SetDataColors($colors); $p->SetShading(0); # Make a legend with all the color names: $p->SetLegend($colors); $p->SetPlotAreaWorld(0.1, 0, NULL, NULL); $p->SetTitle('PHPlot Default Color Map'); $p->SetXTickLabelPos('none'); $p->SetXTickPos('none'); $p->SetYTickIncrement(1); $p->DrawGraph();
# Frame needs: boundary, content type and content length, then the image. # This does nothing with the image (there is another test for that). function check_frame($frame, $boundary) { global $mime_type; return preg_match("--{$boundary}\\s", $frame) && preg_match("Content-Type: {$mime_type}\\si", $frame) && preg_match("Content-Length: (\\d*)\\si", $frame); } # Initial plot object setup: $plot = new PHPlot_pv(640, 480); $plot->SetDataType('text-data'); $plot->SetPlotType('lines'); $plot->SetFileFormat('jpg'); $plot->SetXTickLabelPos('none'); $plot->SetXTickPos('none'); $plot->SetXDataLabelPos('none'); $plot->SetPlotAreaWorld(NULL, 0, NULL, 10); $plot->SetPrintImage(False); # StartStream does no output, only headers (which we cannot catch using the # CLI), so just check the variables it sets: $plot->StartStream(); $boundary = $plot->GET_stream_boundary(); # Check: Stream frame header includes content-type with expected MIME type $sfh = $plot->GET_stream_frame_header(); if (!preg_match("Content-Type: {$mime_type}", $sfh)) { fwrite(STDERR, "Error: Did not match Content type in header:\n{$sfh}\n"); $errors++; } $plot->SetDataValues($data1); $plot->DrawGraph(); ob_start(); $plot->PrintImageFrame();
for ($x = 0; $x < $ppl; $x++) { $row = array('', $x); $offset = $n_shapes + $ppl - $x - 2; for ($j = 0; $j < $n_shapes; $j++) { $row[] = $offset - $j; } $data[] = $row; } $plot->SetImageBorderType('plain'); $plot->SetPlotType('linepoints'); $plot->SetDataType('data-data'); $plot->SetDataValues($data); # Main plot title: $plot->SetTitle("Linepoints Plot - Showing {$n_shapes} Point Shapes\n{$title_suffix}"); # Increase X range to make room for the legend. $plot->SetPlotAreaWorld(0, 0, $ppl, $n_shapes + $ppl - 2); # Turn off tick labels and ticks - not used for this plot. $plot->SetXTickLabelPos('none'); $plot->SetXTickPos('none'); $plot->SetYTickLabelPos('none'); $plot->SetYTickPos('none'); # Need some different colors; $plot->SetDataColors($colors); # If not showing default shapes, show all shapes: if (!isset($use_default_shapes)) { $plot->SetPointShapes($shapes); } # Make the points bigger so we can see them: $plot->SetPointSizes(10); # Make the lines all be solid: $plot->SetLineStyles('solid');