04/10/2018, 17:43

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 awidth=300 color=#c0c0c0'){ //Emulate the symfony ...

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 awidth=300 color=#c0c0c0'){
//Emulate the symfony style of using settings
if(is_array($settings)){
$awidth = (isset($settings['awidth']))?$settings['awidth']: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($awidth)) $awidth = 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="awidth:'.$awidth.'px;height:'.$height.'px;border:1px solid black;padding:1px;">
<div class='bargraph' style='.
(($awidth > $height)?'awidth':'height').':'.
(($variable/$total)*($awidth > $height?$awidth:$height)).'px;background-color:'.$color.';'></div>
</div>
</div>'."
";
}
}

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 !

Tags: bar graphs đồ thị lập trình php php code thu thuat php

Chuyên Mục: PHP

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

0