From 6459aee13d0462a658b9eee7cd50f0295e14178b Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 21 May 2016 20:00:21 +0000 Subject: [PATCH] 98_SVG.pm: log-scale-bug-fix (Forum #53487) git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@11491 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- FHEM/98_SVG.pm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/FHEM/98_SVG.pm b/FHEM/98_SVG.pm index f42753818..bcb5743a0 100755 --- a/FHEM/98_SVG.pm +++ b/FHEM/98_SVG.pm @@ -1695,6 +1695,7 @@ SVG_render($$$$$$$$$$) my $scale = "y".($axis)."scale"; $scale = "yscale" if( $axis == 1 ); my $log = ""; $log = $conf{$scale} if( $conf{$scale} ); + my $f_log = $hmax{$a} ? (SVG_log10($hmax{$a}) / $hmax{$a}) : 1; # offsets my ($align,$display,$cll); @@ -1737,7 +1738,6 @@ SVG_render($$$$$$$$$$) for(my $decimal = 0; $decimal < ($log eq 'log'?SVG_log10($hmax{$a}):1); $decimal++ ) { - my $f = SVG_log10($hmax{$a}) / $hmax{$a}; foreach my $onetic (split(",", $tic)) { $onetic =~ s/^ *(.*) *$/$1/; my ($tlabel, $tvalue) = split(" ", $onetic); @@ -1747,7 +1747,7 @@ SVG_render($$$$$$$$$$) $tlabel = $tvalue if( !$tlabel ); $off2 = int($y+($hmax{$a}-$tvalue)*$hmul); - $off2 = int($y+($hmax{$a}-SVG_log10($tvalue)/$f)*$hmul) + $off2 = int($y+($hmax{$a}-SVG_log10($tvalue)/$f_log)*$hmul) if( $log eq 'log' ); #-- tics SVG_pO ""; @@ -1771,11 +1771,11 @@ SVG_render($$$$$$$$$$) for(my $decimal = 0; $decimal < ($log eq 'log'?SVG_log10($hmax{$a}):1); $decimal++ ) { - my $f = SVG_log10($hmax{$a}) / $hmax{$a}; for(my $i = $hmin{$a}; $i <= $hmax{$a}; $i += $hstep{$a}) { my $i = $i / 10 ** $decimal; $off2 = int($y+($hmax{$a}-$i)*$hmul); - $off2 = int($y+($hmax{$a}-SVG_log10($i)/$f)*$hmul) if( $log eq 'log' ); + $off2 = int($y+($hmax{$a}-SVG_log10($i)/$f_log)*$hmul) + if( $log eq 'log' ); #-- tics SVG_pO " "; #--grids @@ -1823,10 +1823,10 @@ SVG_render($$$$$$$$$$) SVG_pO "" if(!defined($dxp)); next if(!defined($dxp)); + my $f_log = $hmax{$a} ? (SVG_log10($hmax{$a}) / $hmax{$a}) : 1; if( $log eq 'log' ) { - my $f = SVG_log10($hmax{$a}) / $hmax{$a}; foreach my $i (1..int(@{$dxp})-1) { - $dyp->[$i] = SVG_log10($dyp->[$i]) / $f; + $dyp->[$i] = SVG_log10($dyp->[$i]) / $f_log; } } @@ -1841,7 +1841,7 @@ SVG_render($$$$$$$$$$) ($conf{xrange}?"x_off=\"$xmin\" ":"x_off=\"$fromsec\" "). ($conf{xrange}?"x_mul=\"$xmul\" ":"t_mul=\"$tmul\" "). "y_h=\"$yh\" y_min=\"$min\" y_mul=\"$hmul\" title=\"$tl\" ". - ($log eq 'log'?"log_scale=\"".SVG_log10($hmax{$a})/$hmax{$a}."\" ":""). + ($log eq 'log'?"log_scale=\"$f_log\" ":""). "onclick=\"parent.svg_click(evt)\" $conf{lWidth}[$idx]"; my $lStyle = $conf{lStyle}[$idx]; my $isFill = ($conf{lStyle}[$idx] =~ m/fill/);