<?php
include 'D3Image.php';
$image=new D3Image('width:500px;height:300px;background:#eee;');
$barWidth =25;
$barPadding =10;
// Bar Colors by Categories.
$barColors =array('fast'=>$image->MixColors('red','gray'),
'easy'=>$image->MixColors('blue','gray')
);
$Vars=array(
'PHP' =>array('fast'=>rand(0,100),'easy'=>rand(0,100)),
'C#' =>array('fast'=>rand(0,100),'easy'=>rand(0,100)),
'ASP' =>array('fast'=>rand(0,100),'easy'=>rand(0,100)),
'ASPx' =>array('fast'=>rand(0,100),'easy'=>rand(0,100)),
'Ruby' =>array('fast'=>rand(0,100),'easy'=>rand(0,100)),
'Phyton'=>array('fast'=>rand(0,100),'easy'=>rand(0,100))
);
#Find Max ans Set min Val
$max=0;
$min=0;
foreach ($Vars as $lang=>$vars) {
eval ('$mx=max('.implode(',',$vars).',0);');
if ($mx>$max){
$max=$mx;
}
}
# Draw Bars have been compared by height.
$bar=0;
foreach($Vars as $lang=>$vars){
// Write Main Cateories
$image->Write($lang,'font-size:4;color:#000;top:'.($image->height()-35).';left:'.(($bar*($barWidth+$barPadding)+30)+($barWidth/2)));
foreach ($vars as $cat=>$val){
#Draw Shadow
$image->DrawRectangle('height:'.floor(($image->height()-70)*$val/$max-5).';width:'.$barWidth.';color:#AAA;direction:down;top:'.($image->height()-50).';left:'.(($left=($bar*($barWidth+$barPadding)+30))+5).';'); # Shadow
#Draw Main bar.
$image->DrawRectangle('height:'.floor(($image->height()-70)*$val/$max).';width:'.$barWidth.';color:'.$barColors[$cat].';direction:down;top:'.($image->height()-50).';left:'.$left.';');
#Write Property(Sub Category Name)
$image->Write($cat,'font-size:2;color:#AAA;top:'.($image->height()-50).';left:'.($left+$barWidth/2-(strlen($cat)*imagefontwidth(4))/2));
$bar++; # Barnum
}
$image->DrawLine('#AAA',1,array($left+$barWidth+$barPadding/2,20),array($left+$barWidth+$barPadding/2,$image->height()-50));
}
# Draw Minimum Line
$image->DrawLine('#DDD',1,array(0,$image->height()-50),array($image->width(),$image->height()-50));
# Draw Maximum Line.
$image->DrawLine('#DDD',1,array(0,20),array($image->width(),20));
#Save To File
$image->SaveToFile('chart.png');
#Output Image to Browser
$image->Show();
?>
|