Chart-PNGgraph

 view release on metacpan or  search on metacpan

BUGS  view on Meta::CPAN

  figure it out itself, PNGgraph does it right.

FIXED IN 1.10

! When first value of a dataset is undef for a lines graph, things go 
  wrong.
  (report by Arto Nurmela <arto.nurmela@nmp.nokia.com>)

FIXED IN 1.04

! logo positioning and legends don't work very well together.

FIXED IN 1.03

! When data values are large, and x_min_value is larger than 0, the
  horizontal axis doesn't get drawm correctly. (check zero_axis option)
  (see sample41)
  (problem found after report from jackb@pgw.picker.com)

FIXED IN 1.02

TODO  view on Meta::CPAN

This is the original planned improvements to Chart::PNGgraph.  Given the
move away from PNGgraph to GD::Graph, none of these will be implemented
in PNGgraph.  Feel free to petition Martien to include them in GD::Graph.

  -- Steve Bonds

Add TrueType support to all font operations.
Increase the number of examples in the POD documentation
Add legend support to pie graphs. (Idea from Greg Stewart)
Fix bar chart problem aligning zero axis when all values are 
    zero. (Lew Teck Kheng)
Add custom color support to PNGgraph::colors (Rhys from prizegolf)
Create a way to allow one to query the GD coordinates of an area on 
    the chart.  [Probably going to be a major overhaul.]  (abbott)

samples/sample12.pl  view on Meta::CPAN

	x_label => 'X Label',
	y_label => 'Y label',
	title => 'Two data sets',
	long_ticks => 1,
	y_max_value => 40,
	y_tick_number => 8,
	y_label_skip => 2,
	bar_spacing => 4,
);

$my_graph->set_legend( 'Data set 1', 'Data set 2' );

$my_graph->plot_to_png( "sample12.png", \@data );

exit;

samples/sample14.pl  view on Meta::CPAN

	x_label => 'X Label',
	y1_label => 'Y1 label',
	y2_label => 'Y2 label',
	title => 'Using two axes',
	y1_max_value => 40,
	y2_max_value => 8,
	y_tick_number => 8,
	y_label_skip => 2,
	long_ticks => 1,
	two_axes => 1,
	legend_placement => 'RT',
	x_labels_vertical => 1,
	x_label_position => 1/2,

	bar_spacing => 2,

	logo => 'logo.png',
	logo_position => 'BR',
);

$my_graph->set_legend( 'left axis', 'right axis');

$my_graph->plot_to_png( "sample14.png", \@data );

exit;

samples/sample15.pl  view on Meta::CPAN

$my_graph->set( 
	x_label => 'X Label',
	y_label => 'Y label',
	title => 'Stacked Bars (incremental)',
	y_max_value => 50,
	y_tick_number => 10,
	y_label_skip => 2,
	overwrite => 2,
);

$my_graph->set_legend( qw(offset increment more));

$my_graph->plot_to_png( "sample15.png", \@data );

exit;

samples/sample16.pl  view on Meta::CPAN

	x_label => 'Day',
	y_label => 'AUD',
	title => 'Credits and Debits',
	y_max_value => 35,
	y_min_value => -15,
	y_tick_number => 10,
	y_label_skip => 2,
	overwrite => 1, 
	dclrs => [ qw( green lred ) ],
	axislabelclr => 'black',
	legend_placement => 'RB',
	zero_axis_only => 0,
	y_number_format => \&y_format,
	x_label_position => 1/2,
);

my $refit = 4;

sub y_format
{
	my $value = shift;

samples/sample16.pl  view on Meta::CPAN

	if ($value >= 0)
	{
		$ret = sprintf("\$%3d", $value * $refit);
	}
	else
	{
		$ret = sprintf("-\$%3d", abs($value) * $refit);
	}
}

$my_graph->set_legend( 'credits', 'debets' );

$my_graph->plot_to_png( "sample16.png", \@data );

exit;

samples/sample21.pl  view on Meta::CPAN


$my_graph->set( 
	x_label => 'X Label',
	y_label => 'Y label',
	title => 'An Area Graph',
	y_max_value => 40,
	y_tick_number => 8,
	y_label_skip => 2,
);

$my_graph->set_legend( 'one', 'two' );

$my_graph->plot_to_png( "sample21.png", \@data );

exit;

samples/sample31.pl  view on Meta::CPAN


$my_graph = new Chart::PNGgraph::points();

$my_graph->set( 
	x_label => 'X Label',
	y_label => 'Y label',
	title => 'A Points Graph',
	y_max_value => 40,
	y_tick_number => 8,
	y_label_skip => 2, 
	legend_placement => 'RC',
	long_ticks => 1,
	marker_size => 6,
	markers => [ 1, 7, 5 ],
);

$my_graph->set_legend( qw( one two ) );

$my_graph->plot_to_png( "sample31.png", \@data );

exit;

samples/sample41.pl  view on Meta::CPAN

$my_graph->set( 
	x_label => 'X Label',
	y_label => 'Y label',
	title => 'A Lines and Points Graph',
	y_max_value => 80,
	y_tick_number => 6,
	y_label_skip => 2,
	markers => [ 1, 5 ],
);

$my_graph->set_legend( 'data set 1', 'data set 2' );

$my_graph->plot_to_png( "sample41.png", \@data );

exit;

samples/sample42.pl  view on Meta::CPAN

$my_graph->set( 
	x_label => 'X Label',
	y_label => 'Y label',
	title => 'A Lines and Points Graph, reading a CSV file',
	y_max_value => 80,
	y_tick_number => 6,
	y_label_skip => 2,
	markers => [ 1, 5 ],
);

$my_graph->set_legend( 'data set 1', 'data set 2' );

$my_graph->plot_to_png( "sample42.png", \@data );

exit;

sub read_data_from_csv
{
	my $fn = shift;
	my @d = ();

samples/sample52.pl  view on Meta::CPAN

	y_min_value => -6,
	y_tick_number => 14,
	y_label_skip => 2,
	box_axis => 0,
	line_width => 3,
	zero_axis_only => 1,
	x_label_position => 1,
	y_label_position => 1,
);

$my_graph->set_legend("Us", "Them", "Others");

$my_graph->plot_to_png( "sample52.png", \@data );

exit;

samples/sample53.pl  view on Meta::CPAN

	y_max_value => 10,
	y_min_value => -5,
	y_tick_number => 3,
	y_label_skip => 1,
	zero_axis_only => 0,
	long_ticks => 1,
	x_ticks => 0,
	dclrs => [ qw( darkorchid2 mediumvioletred deeppink darkturquoise ) ],
	line_types => [ 1, 2, 3, 4 ],
	line_type_scale => 8,
	legend_marker_width => 24,
	line_width => 3,
);

$my_graph->set_legend( 'one', 'two', undef, 'four' );

$my_graph->plot_to_png( "sample53.png", \@data );

exit;

samples/sample54.pl  view on Meta::CPAN

	y_label_skip => 4,

	x_tick_number => 'auto',

	box_axis => 0,
	line_width => 2,
	x_label_position => 1/2,
	r_margin => 15,
);

$my_graph->set_legend('Thanks to Scott Prahl');

$my_graph->plot_to_png( "sample54.png", \@data );

exit;

sub read_data
{
	my $fn = shift;
	my @d = ();

samples/sample61.pl  view on Meta::CPAN

	y_max_value => 10,
	y_min_value => -5,
	y_tick_number => 3,
	y_label_skip => 1,
	x_plot_values => 0,
	y_plot_values => 0,

	long_ticks => 1,
	x_ticks => 0,

	legend_marker_width => 24,
	line_width => 3,
	marker_size => 5,

	bar_spacing => 8,
);

$my_graph->set_legend( qw( one two three four five six ) );

$my_graph->plot_to_png( "sample61.png", \@data );

exit;

samples/sample62.pl  view on Meta::CPAN

	y1_label => 'Y1 label',
	y2_label => 'Y2 label',
	title => 'A Mixed Type Graph with Two Axes',
	two_axes => 1,
	y1_max_value => 10,
	y2_max_value => 2.5,
	y_min_value => 0,
	y_tick_number => 5,
	long_ticks => 1,
	x_ticks => 0,
	legend_marker_width => 24,
	line_width => 5,

	bar_spacing => 4,

	types => [ qw( bars lines ) ],
);

$my_graph->set_legend( qw( one two three four five six ) );

$my_graph->plot_to_png( "sample62.png", \@data );

exit;



( run in 1.172 second using v1.01-cache-2.11-cpan-49f99fa48dc )