in reply to GD::GRAPH:linespoints problem

Can you give a short example of this bug, say in 5 - 20 lines of code? Without that it's hard to find what the cause is.

Update: here's a simple example that fails to show your bug:

use strict; use warnings; use GD::Graph::linespoints; for (1 .. 2) { my $g = GD::Graph::linespoints->new(100,100); $g->set( x_label => 'X Label', y_label => 'Y label', title => 'Some simple graph', y_max_value => 8, y_tick_number => 8, y_label_skip => 2 ) or die $g->error; open F,">plot$_.png" or die $!; binmode F; my $img = $g->plot( [[ 1, 2, 3, 4], [ 1 * $_, 2 * $_, 3 * $_, 4 * $_ ]] ) or die $g->error; print F $img->png; }

Replies are listed 'Best First'.
Re^2: GD::GRAPH:linespoints problem
by Anonymous Monk on Mar 03, 2007 at 00:06 UTC
    Think of an array of data, that's updated with each iteration. The initial dataset is plotted. The program moves to the second dataset; all the values are updated EXCEPT for the graph portion, which retains the values from the initial dataset --- Thus, the initial dataset is repeatedly plotted Once again, I am able to print iterated datasets thanks
        I just saw that and thought that I'd missed it initially. Let me take a close look at it and see how it's different or similar to what I'm trying to do. It would please me to no end to find that the bug is in my code. thanks
Re^2: GD::GRAPH:linespoints problem
by Anonymous Monk on Mar 03, 2007 at 01:27 UTC
    It would take me a while to reproduce so could you please revise your code where you read in data from a file, then iterate through that data, charting 2 successive instances of it trying to come up with an example now but it's not progressing as quickly as I'd want thanks
      use strict; use warnings; use GD::Graph::linespoints; my $i = 0; while (<>) { my $g = GD::Graph::linespoints->new(100,100); $g->set( x_label => 'X Label', y_label => 'Y label', title => 'Some simple graph', y_max_value => 8, y_tick_number => 8, y_label_skip => 2 ) or die $g->error; my @line = split / /; open F,">plot$i.png" or die $!; binmode F; my $img = $g->plot( [[ 1, 2, 3, 4], \@line] ) or die $g->error; print F $img->png; $i++ }
      Not that it makes any difference; as I suggested before the bug is in YOUR code, not in whatever I make up.
        okay, perhaps you can help me identify the bug using the following file:
        Start comments 1 2 3 4 5 6 7 8 quotes End Start comments 8 7 6 5 4 3 2 1 quotes End
        and the following code (excuse the poor quality)

        use GD::Graph::linespoints; my $data_file = "retestfileIN.txt"; open DATA, "$data_file" or die "can't open $data_file $!"; undef $/; $_ = <DATA>; close DATA; $/ = "\n"; for my $r (0 .. 1) { if (/comments(.*?)quotes/sg) { my $tempvar = $1; $tempvar=~ s/^\s+|\s+$//g; @alltemp = split(/\n/,$tempvar); foreach my $line (@alltemp) { $line =~ /(\d)\s(.*)/g; push(@first, $1); push(@second, $2); push (@data, ([@first, @second])); } } my $g = GD::Graph::linespoints->new(500,300); # graph code $g->set( x_label => 'X Label', y_label => 'Y label', title => 'Some simple graph', y_max_value => 10, y_tick_number => 8, y_label_skip => 2 ) or die $g->error; my $format = $g->export_format; open (IMG, ">squot$r.$format") or die $!; binmode IMG; print IMG $g->plot(\@data)->$format(); # end graph code }
        If I include the code for the graph, the IF never makes it to the second set of data (8 7, 6 5, 4 3, 2 1)

        there's my problem