Vẽ thanh đồ thị bằng css và php

26/07/2012

Vẽ thanh đồ thị bằng css và php

Nếu bạn cần một ví dụ minh họa về việc vẽ đồ thị bằng php và css thì hàm chức năng mà mình chia sẻ trong bài viết này sẽ giúp ích cho bạn. Các bạn chỉ cần copy đoạn code sau đây :

function drawCSSGraph($data, $total, $settings='height=20 width=300 color=#c0c0c0'){
//Emulate the symfony style of using settings
if(is_array($settings)){
$width = (isset($settings['width']))?$settings['width']:300;
$height = (isset($settings['height']))?$settings['height']:20;
$color = (isset($settings['color']))?$settings['color']:'#c0c0c0';
} else {
$settings = explode(' ', $settings);
foreach($settings as $setting){
$tmp = explode('=', $setting);
$$tmp[0] = $tmp[1];
if(!isset($width)) $width = 300;
if(!isset($height)) $height = 20;
if(!isset($color)) $color = '#c0c0c0';
}
}
if(count($data) > 1){
$HTMLoutput = '';
foreach($data as $label=>$var){
$labelv = preg_replace('/\[var\]/', $var, $label);
$HTMLoutput .= drawCSSGraph(array($labelv=>$var), $total, $settings);
}
return $HTMLoutput;
} else {
$variable = $data[key($data)];
$label = preg_replace('/\[var\]/', $variable, key($data));
return
'<div><span>'.$label.'</span>
<div style="width:'.$width.'px;height:'.$height.'px;border:1px solid black;padding:1px;">
<div class=\'bargraph\' style=\''.
(($width > $height)?'width':'height').':'.
(($variable/$total)*($width > $height?$width:$height)).'px;background-color:'.$color.';\'></div>
</div>
</div>'."\n";
}
}

Và sau đây là ví dụ minh họa :

$someData = array('Oranges'=>4, 'Apples'=>10);
$total = 14;
echo drawCSSGraph($someData, $total);

Chúc các bạn thành công !

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !