in reply to GD::Graph::area - how to set the axis origin

Hm. Your code works as is for me?


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.
"I'd rather go naked than blow up my ass"
  • Comment on Re: GD::Graph::area - how to set the axis origin

Replies are listed 'Best First'.
Re^2: GD::Graph::area - how to set the axis origin
by explodec14 (Novice) on Jan 07, 2010 at 15:04 UTC
    yes it works like it looks for you. But you can see that the x-axis is shifted right and the origin is not a zero point

      As stefbv pointed out, because it is a generic graphing package where there will commonly be no relationship between the units displayed on the two axis, it makes sense to not have the Y-axis line up with the zero tick of the X-axis. To do so would be wrong for the majority of datasets.

      A possible solution to your requirement is to remember that underlying GD::Graph is GD, which means you can tweak the graph after you've plotted it with all the power of the latter.

      By adding the following four lines to your original code:

      ## Existing line my $im = $graph->plot(\@data); my $gd = $graph->gd; ## get a drawing handle ## blank out the new Y-axis position $gd->filledRectangle( 16,0, 48,300, $gd->transparent ); ## Copy the Y-axis to the new position $gd->copy( $gd, 35,0, 0,0, 15,300 ); ## Blank out the original $gd->filledRectangle( 0,0, 16,300, $gd->transparent );

      You get this.

      Alternatively, you might prefer to move the graph left to meet the axis and blank the residue.


      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.