When checking for sensible values in axestype::set_max_min:1618 iteration is performed over the first two datasets (1 .. 2), not the two different axes!
You have to iterate over all datasets and check the bounds via use_axis:
GDGraph-1.4305/Graph/axestype.pm
1620c1620
< for my $i (1 .. 2)
---
Show quoted text
> for my $i (1 .. $self->{_data}->num_sets)
1624c1624
< if $self->{y_min}[$i] > $min;
---
Show quoted text> if $self->{y_min}[$self->{use_axis}[$i-1]] > $min;
1626c1626
< if $self->{y_max}[$i] < $max;
---
Show quoted text> if $self->{y_max}[$self->{use_axis}[$i-1]] < $max;