Hi, I think your
package PostScript::Graph::Paper; $VERSION = '0.08'; could work far better with log(abs()) in init_scale of $lhi10... ... #print "$axis spreads = [", join(", ", @spread), "], depth=$sc->{ldepth}\n"; $sc->{markmul} = ($#factor >= 0) ? ($sc->{markmax} - $sc->{markmin})/($#factor + 1) : 0; ## calculate any SI adjustment to labels my $lhi10 = $sc->{lhi} != 0 ? log(abs($sc->{lhi}))/log(10) : 0; my $si10 = $sc->{si} ? ($sc->{si} * int($lhi10/$sc->{si})) : 0; my $si = 10 ** $si10; if ($si != 1) { $sc->{title} = "" unless (defined $sc->{title}); ... Cheers, Christian Montanari.