Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hello,

I am trying to put up a line graph but I can not get it to start displaying the graph starting at the Y axis. The graph always start at the first x tick which is one tick off to the right. Any help? Thanks.

I graph I am trying to use is at:

http://www.jonblog.uklinux.net/www/presentation/img3.html

Replies are listed 'Best First'.
Re: Help With GD::Graph::lines
by Anonymous Monk on Aug 01, 2007 at 02:17 UTC
    This is th code I am using:
    use GD::Graph::lines; @data = ( ["1st","2nd","3rd","4th","5th","6th","7th", "8th", "9th"], [ 1, 2, 5, 6, 3, 1.5, 1, 3, 4], [ sort { $a <=> $b } (1, 2, 5, 6, 3, 1.5, 1, 3, 4) ] ); my $graph = GD::Graph::lines->new(400,400); $graph->set ( x_label => 'values1', y_label => 'values2', title => 'Correlate', ) or die $my_graph->error; my $gd = $graph->plot(\@data) or die $my_graph->error; open (IMG, '>file.png') or die $!; binmode IMG; print IMG $gd->png;
    The line always start at 1st but I need it to start drawing at the origin. Any help would be appreciated.

    Thanks.

      sorry, I meant to use <br> new line and not <b> for bold

      This is th code I am using:

      use GD::Graph::lines; @data = ( "1st","2nd","3rd","4th","5th","6th","7th", "8th", "9th", 1, 2, 5, 6, 3, 1.5, 1, 3, 4, sort { $a <=> $b } (1, 2, 5, 6, 3, 1.5, 1, 3, 4) ); my $graph = GD::Graph::lines->new(400,400); $graph->set ( x_label => 'values1', y_label => 'values2', title => 'Correlate', ) or die $my_graph->error; my $gd = $graph->plot(\@data) or die $my_graph->error; open (IMG, '>file.png') or die $!; binmode IMG; print IMG $gd->png;

      The line always start at 1st but I need it to start drawing at the origin. Any help would be appreciated. Thanks.

      Code tags added by GrandFather

        Try prefixing your value sets with zeros.

        use GD::Graph::lines; @data = ( [ '0', "1st","2nd","3rd","4th","5th","6th","7th", "8th", "9th", ], [ 0, 1, 2, 5, 6, 3, 1.5, 1, 3, 4, ], [ 0, sort { $a <=> $b } (1, 2, 5, 6, 3, 1.5, 1, 3, 4) ], ); my $graph = GD::Graph::lines->new(400,400); $graph->set ( x_label => 'values1', y_label => 'values2', title => 'Correlate', ) or die $!; my $gd = $graph->plot(\@data) or die $!; open (IMG, '>file.png') or die $!; binmode IMG; print IMG $gd->png; close IMG;

        Also, please read the formatting guidelines next time you post.


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
        Guess it's got to do with the type of data you use. 1st is only the first appearance of the data. Therefor it'll not start at zero. Maybe a bar chart is more natural?

        A site you might think is interesting:
        http://gdgraph.com/samples/sample11.html

        Gert