PHP Diagramm Bereich unter Linie füllen

son gohan

Erfahrenes Mitglied
Hallo PHP Gelehrte,

ich habe ein Liniendiagramm Script und will den unteren Bereich etwas farblich einfärben, von einem dunkleren zu einem etwas helleren Farbton,

ich habe es noch nicht hinbekommen, aber vermute das es mit PHP möglich sein könnte zu realisieren.

Ich würde mich daher über jeden Ratschlag freuen, wenn jemand Lust hat.

Hier ist mein bisheriger Code und Ergebnisbild.

PHP:
<?

$Values=array(0,10,15,25,40,50,60,75,87);


//+-----------------------------------------------------------+
//| Maximimal und Minimalwerte finde                          |
//+-----------------------------------------------------------+
$YMin = 0;
$YMax = count($Values)-1;
$Tmp = $Values;
sort($Tmp);
$XMin = $Tmp[0];
rsort($Tmp);
$XMax =$Tmp[0];


header("Content-type: image/png");


$imgWidth=400;
$imgHeight=150;
$grid=25;
$graphspacing=0.0;
$Ausenabstand=20;
$AbstandOben=10;
$EAAB=5;
$imgWidth2=400;
$mals=1;

//+-----------------------------------------------------------+
//| Bild erstellen Farben definieren                                           |
//+-----------------------------------------------------------+
$image=imagecreate($imgWidth, $imgHeight);
$colorWhite=imagecolorallocate($image, 255, 255, 255);
$colorGrey=imagecolorallocate($image, 192, 192, 192);
$colorBlue=imagecolorallocate($image, 0, 0, 255);
$colorBlack=imagecolorallocate($image, 143, 143, 143);
$colorHintegrund=imagecolorallocate($image, 228, 240, 241);


//+-----------------------------------------------------------+
//| Liniengrafikwerte umrechnen                                                |
//+-----------------------------------------------------------+
while (list($key, $val) = each($Values)) {if($val>$max){$max=$val;}}
for ($i=0; $i<count($Values); $i++)
{
 $graphValues[$i] = $Values[$i] * (( ($imgHeight-$Ausenabstand-$EAAB-6)*(1-$graphspacing))/$max);
}
//+-----------------------------------------------------------+
//| Rahmen zeichnen                                                            |
//+-----------------------------------------------------------+
imageline($image, 0, 6, 0, $imgHeight-$Ausenabstand-4, $colorBlack);
imageline($image, 0, 6, $imgWidth2-$Ausenabstand-30+($mals*$grid), 6, $colorBlack);
imageline($image, $imgWidth2-$Ausenabstand-30+($mals*$grid), 6, $imgWidth2-$Ausenabstand-30+($mals*$grid), $imgHeight-$Ausenabstand-4, $colorBlack);
imageline($image, 0, $imgHeight-$Ausenabstand-4, $imgWidth2-$Ausenabstand-30+($mals*$grid), $imgHeight-$Ausenabstand-4, $colorBlack);


//+-----------------------------------------------------------+
//| Gitter zeichnen                                                            |
//+-----------------------------------------------------------+
//IMG_COLOR_STYLED  steht für gestrichelte Linien style
imagesetstyle($image, array($colorGrey, $colorGrey, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT));
//---- Vertikal  Linien
for ($i=1; $i<($imgWidth2/$grid)-2+$mals; $i++)
{
    imageline($image, $i*$grid
                     , 7
                     , $i*$grid
                     , $imgHeight-$Ausenabstand-$EAAB
                     , IMG_COLOR_STYLED);
}
//---- Horizonal  Linien
for ($i=1; $i<($imgHeight/$grid)-1; $i++)
{
    imageline($image, 1
                     , ($i*$grid)+4
                     , $imgWidth2-$Ausenabstand-31+($mals*$grid)
                     , ($i*$grid)+4
                     , IMG_COLOR_STYLED);
}



//+-----------------------------------------------------------+
//| Linie zeichnen                                                             |
//+-----------------------------------------------------------+
$imgWidth2=$imgWidth2-$Ausenabstand-$EAAB-$grid-1+($mals*$grid);
$imgHeight=$imgHeight-$Ausenabstand-$EAAB+1;
$space = $imgWidth2/(count($graphValues)-1);
//----
for($i=0; $i<count($graphValues)-1&&$Nullwert==0; $i++)
{
imageline($image, $i*$space
                 , ($imgHeight-$graphValues[$i])
                 , ($i+1)*$space
                 , ($imgHeight-$graphValues[$i+1])
                 , $colorBlue);

}



//+-----------------------------------------------------------+
//| Bild ausgeben mit PHP und Speicher wieder leeren freigeben                 |
//+-----------------------------------------------------------+
imagepng($image);
imagedestroy($image);
?>
 

Anhänge

  • linie.gif
    linie.gif
    2,8 KB · Aufrufe: 26

Neue Beiträge

Zurück