首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mysql表中使用php显示图形

在Mysql表中使用php显示图形
EN

Stack Overflow用户
提问于 2013-01-17 15:43:25
回答 3查看 4.5K关注 0票数 0

如何使用PHP image函数动态显示存储在MySQL表中的数据的统计信息?我能够使用静态表格上的count query以条形图的形式显示计数,但如所给出的图像所示。我有一个动态存储服务器日志的数据库。

图片是由php的3个表和image & draw函数生成的。

EN

回答 3

Stack Overflow用户

发布于 2013-01-17 15:47:41

我不知道你是怎么想的。但是有一个很好的Jquery插件叫做Highcharts。您可以使用它来创建各种类型的图形。如果您感兴趣,请参考下面的链接

http://www.highcharts.com/

票数 1
EN

Stack Overflow用户

发布于 2013-01-17 16:54:27

Rgraph也是一个非常好的HTML5/Javascript图形库,易于使用,有很多选项。

http://www.rgraph.net/

代码语言:javascript
复制
var data = ['<?php echo implode("','", $average); ?>']; 

function drawGraph(){
    RGraph.Clear(document.getElementById('myRadar'));
    var radar = new RGraph.Radar('myRadar', data);

这就是如何添加一个PHP数组,$average是带有数字的数组,在这个例子中它是一个雷达图。内部函数将一个逗号放在数组的值之间。

票数 1
EN

Stack Overflow用户

发布于 2013-01-17 17:38:55

我已经使用下面的代码用php创建了一个简单的条形图。您必须从数据库中获取BAR值并将其放入$data数组中。接下来,必须设置图像大小的$height和$width。根据您的图像大小,您必须定位聊天。

代码语言:javascript
复制
<?php

$data = array('400', '2570', '245', '473', '1000', '3456', '780', '5000', '30', '420');
$sum = array_sum($data);

$height = 480;
$width  = 640;

$im         = imagecreate($width, $height);
$background = imagecolorallocate($im, 255, 255, 255);

$white  = imagecolorallocate($im, 255, 255, 255);
$black  = imagecolorallocate($im, 0, 0, 0);
$red    = imagecolorallocate($im, 255, 0, 0);
$green  = imagecolorallocate($im, 51, 153, 0);
$yellow = imagecolorallocate($im, 255, 255, 0);

imageline($im, 10, 5, 10, $height - 20, $black);
imageline($im, 10, $height - 20, 620, $height - 20, $black);

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

$x       = 11;
$y       = 459;
$x_width = 20;
$y_ht    = 0;

$max_i = count($data);
for ($i     = 0; $i < $max_i; $i++) {
    $y_ht = ($data[$i] / $sum) * $height;
    if ($data[$i] > 1000) {
        imagefilledrectangle($im, $x, $y, $x + $x_width, ($y - $y_ht), $green);
    } else if ($data[$i] > 500) {
        imagefilledrectangle($im, $x, $y, $x + $x_width, ($y - $y_ht), $yellow);
    } else {
        imagefilledrectangle($im, $x, $y, $x + $x_width, ($y - $y_ht), $red);
    }
    imagestring($im, 2, $x - 1, ($y - $y_ht - 15), $data[$i], $black);
    $x += ($x_width + 2);
}
imagepng($im);
imagedestroy($im);
?>

参考:http://www.talkphp.com/advanced-php-programming/1629-bar-chart-php.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14374288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档