Hallo,
ich mal ein bisschen mit der Statistikseite rumgespielt. Herausgekommen ist eine D/T-Matrix mit "Farbverlauf" (D/T-Kombination mit der höchsten Fundzahl = rot, niedrigste Fundzahl = gelb, dazwischen wird linear interpoliert). Wer wissen will, wie das aussieht, kann auf meiner Geolog-Statistikseite nachschauen.
Hier kommt der Code der veränderten dtmat.incl-Datei. Aber Achtung, nicht erschrecken: ich habe bisher noch nie etwas in Perl geschrieben!
ich mal ein bisschen mit der Statistikseite rumgespielt. Herausgekommen ist eine D/T-Matrix mit "Farbverlauf" (D/T-Kombination mit der höchsten Fundzahl = rot, niedrigste Fundzahl = gelb, dazwischen wird linear interpoliert). Wer wissen will, wie das aussieht, kann auf meiner Geolog-Statistikseite nachschauen.
Hier kommt der Code der veränderten dtmat.incl-Datei. Aber Achtung, nicht erschrecken: ich habe bisher noch nie etwas in Perl geschrieben!
Code:
##eval(
sub scale_color
{
my($value,$min_value,$max_value,$delta_value,$min_r,$min_g,$min_b,$max_r,$max_g,$max_b,$r,$g,$b,$color);
$value=$_[0];
$min_value=$_[1];
$max_value=$_[2];
$delta_value=($value-$min_value)/($max_value-$min_value);
$min_r=$_[3];
$min_g=$_[4];
$min_b=$_[5];
$max_r=$_[6];
$max_g=$_[7];
$max_b=$_[8];
$r=int($min_r + $delta_value*($max_r-$min_r));
$g=int($min_g + $delta_value*($max_g-$min_g));
$b=int($min_b + $delta_value*($max_b-$min_b));
$color = sprintf( "#%02x%02x%02x", $r, $g, $b );
return $color;
}
sub dtmat_color {
my(%dvals,%tvals,%dtvals);
my($text,$d,$t,$c,$dtmax,$dtmin,$dmax,$tmax,$dsum,$tsum,$min_value,$max_value);
$dsum = 0;
$tsum = 0;
foreach (keys(%found)) {
$dvals{$found{$_}->{'Difficulty'}}++;
$dsum += $found{$_}->{'Difficulty'};
$tvals{$found{$_}->{'Terrain'}}++;
$tsum += $found{$_}->{'Terrain'};
$dtvals{$found{$_}->{'Difficulty'} . "|" . $found{$_}->{'Terrain'}}++;
}
foreach (keys(%dvals)) {
$dmax = $_ if ($dvals{$dmax} < $dvals{$_});
}
foreach (keys(%tvals)) {
$tmax = $_ if ($tvals{$tmax} < $tvals{$_});
}
foreach (keys(%dtvals)) {
$dtmax = $_ if ($dtvals{$dtmax} < $dtvals{$_});
}
foreach (keys(%dtvals)) {
$dtmin = $_ if ($dtvals{$dtmin} > $dtvals{$_});
}
$max_value = $dtvals{$dtmax};
$min_value = $dtvals{$dtmin};
$text = "";
foreach $d ((1,1.5,2,2.5,3,3.5,4,4.5,5)) {
$text .= "\n <tr>";
$text .= "\n <th class='statistics'>$d</th>";
foreach $t ((1,1.5,2,2.5,3,3.5,4,4.5,5)) {
if (($c = $dtvals{ $d . "|" . $t }) != 0) {
$text .= "\n <td class='statistics' style='text-align:center;color:black;background:" . scale_color($c, $min_value, $max_value, 255,255,0, 255,0,0) . "'>";
$text .= "$c";
$text .= "</td>";
} else {
$text .= "\n <td class='statistics'> </td>";
}
}
$c = $dvals{$d};
$text .= "\n <td class='statistics' style='text-align:right'>";
$text .= "<font color='red'>" if ($dvals{$dmax} == $c);
$text .= "$c";
$text .= "</font>" if ($dvals{$dmax} == $c);
$text .= "</td>";
$text .= "\n </tr>";
}
$text .= "\n <tr>";
$text .= "\n <td class='statistics' style='text-align:right'> </td>";
foreach $t ((1,1.5,2,2.5,3,3.5,4,4.5,5)) {
$c = $tvals{$t};
$text .= "\n <td class='statistics' style='text-align:right'>";
$text .= "<font color='red'>" if ($tvals{$tmax} == $c);
$text .= "$c";
$text .= "</font>" if ($tvals{$tmax} == $c);
$text .= "</td>";
}
$text .= "\n <td class='statistics' style='text-align:right'> </td>";
$text .= "\n </tr>";
$text .= "\n <tr>\n <td class='statistics' style='text-align:center' colspan='12'>";
$text .= scalar(keys(%dtvals)) . " von 81 möglichen D/T-Kombinationen gefunden, ";
$text .= "arithmetisches Mittel der D/T-Werte: " .
sprintf("%1.2f",$dsum/scalar(keys(%found))) .
"/" . sprintf("%1.2f",$tsum/scalar(keys(%found)));
$text .= "\n </td>\n </tr>\n";
return($text);
})##
<table class="statistics">
<caption class="statistics">Schwierigkeits/Gelände-Matrix</caption>
<tr>
<th class="statistics"> </th>
<th colspan="10" class="statistics">Gelände</td>
<th class="statistics"> </th>
</tr>
<tr>
<th rowspan="11" class="statistics" width="12%">Schwierigkeit</td>
<th class="statistics" width="8%"> </th>
<th class="statistics" width="8%">1</th>
<th class="statistics" width="8%">1.5</th>
<th class="statistics" width="8%">2</th>
<th class="statistics" width="8%">2.5</th>
<th class="statistics" width="8%">3</th>
<th class="statistics" width="8%">3.5</th>
<th class="statistics" width="8%">4</th>
<th class="statistics" width="8%">4.5</th>
<th class="statistics" width="8%">5</th>
<th class="statistics" width="8%"> </th>
</tr>
##eval(dtmat_color())##
</table>